PDA

View Full Version : سوال: عملیات CRUD (درج،آپدیت،حذف وخواندن) دیتابیس Mysql آنلاین به روش وب سرویس



barman.ar16
پنج شنبه 02 فروردین 1397, 22:23 عصر
سلام به همه اساتید و دوستان
همانطور که خود دوستان هم اشراف دارند توی انجمن هیچ تاپیکی به این موضوع اختصاص داده نشده است (متاسفانه)
و با توجه به اینکه معمولا 99 درصد هاست هایی که ما میگیریم امکان ریموت مستقیم به mysql رو نمیدند ما مجبور هستیم از روش وب سرویس استفاده کنیم البته باتوجه به توضیحات اساتید توی تاپیک های قبل این روش مطمئن تر و بهینه تر هم هست

لطفا اساتید و دوستان راهنمایی کنند برای انجام چهار عملیات در هاست لینوکسی و با دیتابیس mysql از طریق متد post یا همون set یا get باید از چه طریق اقدام کنم(فکر کنم باید یک صفحه php در هاست تولید کنم و درون اون عملیات رو انجام بدم درسته؟ البته هنوز درک درستی از این قضیه ندارم مثلا ما باید کل عملیات درج آپدیت حذف یا خواندن اطلاعات رو درون همون صفحه انجام بدیم یعنی کوئری ها رو اونجا بزنیم و بعد درون برنامه سی شارپی خودمون فقط اون کوئری ها رو صدا بزنیم یا نه باید کوئری ها رو سمت سی شارپ بنویسیم ممنون میشم بیشتر توضیح بدید اول این قضیه برام روشن بشه)

لطفا دوستان و اساتید عزیز زاهنمایی کنند تا این تاپیک تبدیل بشه به یک مرجع تا دیگران عزیزانی که هم بعدا نیازمند این قضیه میشن از این تاپیک استفاده کنند
متشکرم

barman.ar16
پنج شنبه 02 فروردین 1397, 23:17 عصر
خب به نظرم مرحله به مرحله جلو بریم بهتر باشه

1- در حرکت اول فکر کنم باید یک صفحه جهت کانکت با دیتابیس درست کنیم
من این کد رو پیدا کردم ببنید درست هست یا نه؟ اگر نیاز به اصلاح داره ممنون میشم بفرمایید



<?php
$hostname_localhost ="localhost";
$database_localhost ="mydatabase";
$username_localhost ="root";
$password_localhost ="";
$con = mysql_connect($hostname_localhost,$username_localh ost,$password_localhost)
or
trigger_error(mysql_error(),E_USER_ERROR);
?>

رامین مرادی
جمعه 03 فروردین 1397, 16:56 عصر
بله تا اینجاش درسته. حالا شما تو ادامش میتونی یه سلکت بزنی و نتیجه رو به صورت جیسون برگردونی. و داده های جیسون رو تو برنامت استفاده کنی.. فعلا امکان گذاشتن سوروس کد برای راهنمایی ندارم. در ضمن سعی کن از mysqli تو کد نویسی استفاده کنی.

barman.ar16
شنبه 04 فروردین 1397, 08:53 صبح
بله تا اینجاش درسته. حالا شما تو ادامش میتونی یه سلکت بزنی و نتیجه رو به صورت جیسون برگردونی. و داده های جیسون رو تو برنامت استفاده کنی.. فعلا امکان گذاشتن سوروس کد برای راهنمایی ندارم. در ضمن سعی کن از mysqli تو کد نویسی استفاده کنی.

خب مرحله به مرحله می پرسم و جلو میرم ...
الان اگر من بخوام اطلاعات دیتابیس رو درون یک دیتاگریدویو برنامه ویندوزیم نشون بدم باید یک صفحه php دیگه درست کنم و کوئری سلکت خودم رو اونجا بنویسم و بعدش اون رو توی سی شارپ صدا بزنم درسته؟

در خصوص خط آخر که نوشتید سعی کن از mysqli تو کدنویسی استفاده کن متوجه منظورتون نشدم (اون i آخر mysql چی هست؟)
ممنون

رامین مرادی
یک شنبه 05 فروردین 1397, 08:12 صبح
خب مرحله به مرحله می پرسم و جلو میرم ...
الان اگر من بخوام اطلاعات دیتابیس رو درون یک دیتاگریدویو برنامه ویندوزیم نشون بدم باید یک صفحه php دیگه درست کنم و کوئری سلکت خودم رو اونجا بنویسم و بعدش اون رو توی سی شارپ صدا بزنم درسته؟

در خصوص خط آخر که نوشتید سعی کن از mysqli تو کدنویسی استفاده کن متوجه منظورتون نشدم (اون i آخر mysql چی هست؟)
ممنون


دوست عزیز mysql به لیست deprecated ها اضافه شده......یعنی در آینده حذف خواهد شد.....پس بهتره از mysqli استفاده کنید.......mysqli تقریبا شبیه به mysql هست ولی خیلی امن تر شده و مشکلاتی که در mysql بوده رو بهبود بخشیده......mysqli مخفف mysql improved هست.....یعنی mysql بهبودیافته....در اینترنت سرچ کنید منابع زیادی برای یادگیری mysqli وجود داره........امیدوارم متوجه شده باشین.

نمونه کدی هم براتون میزارم برای واکشی اطلاعات جداول



<?php
header("Content-Type: application/json; charset=UTF-8");
$conn = new mysqli("localhost", "", "@","");
mysqli_query($conn,"SET CHARSET UTF8");
$result = $conn->query("SELECT * from tbl_post order by id desc ");
$outp = array();
while($row = $result->fetch_assoc())
$outp[]=$row;
echo json_encode($outp);

?>


تو خط اول میگیم این صفحه اطلاعاتمون به صورت جیسون هست
خط دوم مربوط به اتصالمون هست.
خط سوم کارکترست درخواستهامون رو utf8 میکنیم تا حروف فارسی درست به ما نشون داده بشه
خط چهارم یک کوئری میزنیم تا مثلا لیست پستهامون رو برگردونه.
خط پنجم یه آرایه درست میکنی.
خط ششم یه حلقه ایجاد میکنیم تا خروجی مون رو واکشی کنیم (
fetch_assoc
) سطر به سطر داده هامون رو میخونه و این حلقه تا رسیدن به آخرین سطر ادامه پیدا میکنه.
خط هفتم سطر خوانده شده رو داخل آرایه ای که قبلا ایجاد کردیم میریزیم.
خط هشتم هم آرایه مون رو تبدیل به کدینگ جیسون میکنیم و با echo چاپش میکنیم.

خب تا اینجا وب سرویسمون تکمیل شده باید بریم سمت برنامه نویسی دسکتاپمون.
که باید یه درخواستی به این صفحه بفرستیم و نتیجه رو بازیابی کنیم. خودتون ببینید چطوری میتونید انجام بدید در صورت نیاز بگید راهنمایی کنیم.
این لینک رو هم بخونید برای تبدیل جیسون به دیتاتیبل:
https://stackoverflow.com/questions/11981282/convert-json-to-datatable

arameshbar
یک شنبه 05 فروردین 1397, 11:31 صبح
عالی (http://arameshbar.com/cargo-areas/west-tehran/street-satarkhan/index.html) این درست ترینه

NasimBamdad
یک شنبه 05 فروردین 1397, 14:16 عصر
mysql , php

چه ربطی به C# داره . جاش اینجا نیست به نظرم

barman.ar16
یک شنبه 05 فروردین 1397, 18:20 عصر
mysql , php

چه ربطی به C# داره . جاش اینجا نیست به نظرم

دوست عزیز درواقع این یک روش برای استفاده از دیتابیس آنلاین در برنامه های ویندوزی هست
بنده یک برنامه ویندوزی دارم که با سی شارپ نوشته شده و بنابه مقتضیات نیاز به دیتابیس آنلاین دارم که این روش این نیاز رو مرتفع می کند

mr.sirwan
یک شنبه 05 فروردین 1397, 20:11 عصر
دوست عزیز درواقع این یک روش برای استفاده از دیتابیس آنلاین در برنامه های ویندوزی هست
بنده یک برنامه ویندوزی دارم که با سی شارپ نوشته شده و بنابه مقتضیات نیاز به دیتابیس آنلاین دارم که این روش این نیاز رو مرتفع می کند

البته که این نیاز رو برطرف میکنه حق با شماس اما هر سوالی باید توی فروم خودش پرسیده بشه، اینجوری نیس که مثلا چون شما واسه همین برنامه تون یه نرم افزار اندرویدی هم مینویسی بیای سوالات و مشکلات مربوط به اندروید رو هم بیاری اینجا بپرسی به خاطر اینکه یه جورایی به نرم افزار دسکتاپیت مرتبطه (منطقی نیست دیگه) :چشمک:

تاپیک احتمالا منتقل خواهد شد

NasimBamdad
یک شنبه 05 فروردین 1397, 23:23 عصر
دوست عزیز درواقع این یک روش برای استفاده از دیتابیس آنلاین در برنامه های ویندوزی هست
بنده یک برنامه ویندوزی دارم که با سی شارپ نوشته شده و بنابه مقتضیات نیاز به دیتابیس آنلاین دارم که این روش این نیاز رو مرتفع می کند

یه سوال دارم .

چرا از همین SQL Server و در سرور ویندوزی استفاده نکردید؟

barman.ar16
دوشنبه 06 فروردین 1397, 00:31 صبح
یه سوال دارم .

چرا از همین SQL Server و در سرور ویندوزی استفاده نکردید؟

هزینه در پروژه ای که من دارم انجام میدم حرف اول رو میزنه
اگر با هاست ویندوزی ( سرور گرون درمیاد ) میشه همین پروژه رو انجام داد من برام فرقی نداره
الان من یه هاست لینوکسی پیدا کردم با اجاره ۹۰ تومن در سال توی همین رنج قیمت اگر هاست ویندوزی پیدا بشه حله
فقط میمونه اینکه با هاست ویندوزی و sql چطوری پروژه ام رو پیاده سازی کنم
اون هم روش وب سرویس هست یا نه؟
لینک آموزشی چیزی دارید یا خیر؟
پیشاپیش از راهنمایی هاتون ممنون و سپاسگزارم

mr.sirwan
دوشنبه 06 فروردین 1397, 01:13 صبح
میشه لطفا مشخصات این هاستت رو بگی؟ من هاست ویندوزی ترافیک نامحدود، حجم نامحدود خلاصه غیر از addon domain همه چی نامحدود سراغ دارم سالیانه 99 تومن(هاست ویندوزی از این ارزونتر؟ :لبخند:) هاست خودم که کلا فول نامحدوده سالی 180 تومن
بله با sql سرور هم قابل پیاده سازی هستش و باید از asp.net web api استفاده کنین که به شخصه خودم از web api استفاده میکنم، اما شما که تا این همه راه رو با php اومدی با همون ادامه بده

رامین مرادی
دوشنبه 06 فروردین 1397, 09:31 صبح
هزینه در پروژه ای که من دارم انجام میدم حرف اول رو میزنه
اگر با هاست ویندوزی ( سرور گرون درمیاد ) میشه همین پروژه رو انجام داد من برام فرقی نداره
الان من یه هاست لینوکسی پیدا کردم با اجاره ۹۰ تومن در سال توی همین رنج قیمت اگر هاست ویندوزی پیدا بشه حله
فقط میمونه اینکه با هاست ویندوزی و sql چطوری پروژه ام رو پیاده سازی کنم
اون هم روش وب سرویس هست یا نه؟
لینک آموزشی چیزی دارید یا خیر؟
پیشاپیش از راهنمایی هاتون ممنون و سپاسگزارم


مشکلی نیست با هاست ویندوزی هم میتونید انجام بدید و اینکه حتی میتونید مستقیم بدون وب سرویس به دیتابیس وصل بشید ولی به هیچ وجه توصیه نمیشه .در اونجا هم برای امنیت بیشتر وب سرویس بنویسید. به شخصه خودم با php راحتترم. درسته سی شارپ کار میکنم اما اصلا با asp ابم تو یه جوب نمیره:لبخند:.(منم php رو برا این معرفی کردم که تا جایی که به مشکل برخوردم با یه سرچ ساده زود به نتیجه رسیدم.و همچنین دلیل دیگه م که پی اچ پی رو بهتون پیشنهاد دادم ای بود که با این مورد هم مختصر آشنا بشید خیلی جاها حتما به دردتون میخوره )

جناب

#12 (http://barnamenevis.org/showthread.php?547331-%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA-CRUD-(%D8%AF%D8%B1%D8%AC%D8%8C%D8%A2%D9%BE%D8%AF%DB%8C% D8%AA%D8%8C%D8%AD%D8%B0%D9%81-%D9%88%D8%AE%D9%88%D8%A7%D9%86%D8%AF%D9%86)-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-Mysql-%D8%A2%D9%86%D9%84%D8%A7%DB%8C%D9%86-%D8%A8%D9%87-%D8%B1%D9%88%D8%B4-%D9%88%D8%A8-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3&p=2390964&viewfull=1#post2390964)

mr.sirwan (http://barnamenevis.org/member.php?369257-mr-sirwan) ممنون میشم آدرس اون هاست رو به منم معرفی کنید شاید لازم شد. لطفا تو خصوصی بفرستید تا مشکلی برا تایپیک ایجاد نشه

NasimBamdad
دوشنبه 06 فروردین 1397, 14:04 عصر
اگه اهمیت پروژه براتون مهمه به نظر من سمت VPS برید بهتره . مشکلی که در هاست های الان موجوده بحث مصرف CPU , RAM هست که لیمیت شده هست و شما سرعت مناسبی نخواهید داشت

ولی با هزینه حدود همون 200 هزار یا زیر این رقم می تونید یه سرور 2 گیگ رم بگیرید با پرت 1 گیگ و تمام منابع و ... در اختیارتون هست .

دسترسی ریموت دارید و هر نرم افزاری بخوایید می تونید نصب کنید و درگیر ورژن SQL که سرویس دهنده ارائه می کنه نیستید .

در ضمن باید بپرسید که Remote SQL رو براتون باز می کنند یا نه . یکسری محدودیت ها در هاست هست که در سرور مجازی نیست .


بنده خودم یک VPS دارم که در حدود 50 کاربر آنلاین ازش استفاده می کنند و به SQL Server وصل هستند . زیاد در مورد MySQL اطلاعی ندارم . اما آپشن های خوبی برای بهینه سازی دیتابیس موجوده که در SQL Server می تونید ازشون استفاده کنید . نمی دونم این آپشن ها در MySQL هم موجوده یا نه.

در ضمن MariaDB از MySql بهتره . و دقیقا همون MySql ولی آپگرید شده اش هست

barman.ar16
دوشنبه 06 فروردین 1397, 18:33 عصر
میشه لطفا مشخصات این هاستت رو بگی؟ من هاست ویندوزی ترافیک نامحدود، حجم نامحدود خلاصه غیر از addon domain همه چی نامحدود سراغ دارم سالیانه 99 تومن(هاست ویندوزی از این ارزونتر؟ :لبخند:) هاست خودم که کلا فول نامحدوده سالی 180 تومن
بله با sql سرور هم قابل پیاده سازی هستش و باید از asp.net web api استفاده کنین که به شخصه خودم از web api استفاده میکنم، اما شما که تا این همه راه رو با php اومدی با همون ادامه بده

10 گیگ حجم 200 گیگ پهنای باند 400 مگ دیتابیس اس اس ال رایگان دامنه ir رایگان همگی 90 هزار تومان سالیانه
در خصوص پیاده سازی هم من هنوز قسمت آنلاین برنامه ام رو هیچ کاری انجام ندادم و قسمت های آفلاین رو تمام کردم (پروژه ام شامل دو تا برنامه هست که 70 درصد قسمت های برنامه آفلاین و با دیتابیس لوکال هست و 30 درصد آنلاین هست)


مشکلی نیست با هاست ویندوزی هم میتونید انجام بدید و اینکه حتی میتونید مستقیم بدون وب سرویس به دیتابیس وصل بشید ولی به هیچ وجه توصیه نمیشه .در اونجا هم برای امنیت بیشتر وب سرویس بنویسید. به شخصه خودم با php راحتترم. درسته سی شارپ کار میکنم اما اصلا با asp ابم تو یه جوب نمیره:لبخند:.(منم php رو برا این معرفی کردم که تا جایی که به مشکل برخوردم با یه سرچ ساده زود به نتیجه رسیدم.و همچنین دلیل دیگه م که پی اچ پی رو بهتون پیشنهاد دادم ای بود که با این مورد هم مختصر آشنا بشید خیلی جاها حتما به دردتون میخوره )

جناب

#12 (http://barnamenevis.org/showthread.php?547331-%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA-CRUD-(%D8%AF%D8%B1%D8%AC%D8%8C%D8%A2%D9%BE%D8%AF%DB%8C% D8%AA%D8%8C%D8%AD%D8%B0%D9%81-%D9%88%D8%AE%D9%88%D8%A7%D9%86%D8%AF%D9%86)-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-Mysql-%D8%A2%D9%86%D9%84%D8%A7%DB%8C%D9%86-%D8%A8%D9%87-%D8%B1%D9%88%D8%B4-%D9%88%D8%A8-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3&p=2390964&viewfull=1#post2390964)

mr.sirwan (http://barnamenevis.org/member.php?369257-mr-sirwan) ممنون میشم آدرس اون هاست رو به منم معرفی کنید شاید لازم شد. لطفا تو خصوصی بفرستید تا مشکلی برا تایپیک ایجاد نشه

ممنون ار توضیحاتتون جناب مرادی عزیز
بعله من هم دقیقا با asp خیلی حال نمی کنم و با php راحتترم
الان هم به دلیل کمبود وقت میخوام فقط درحد اینکه بتونم پروژه رو تکمیل کنم و تحویل بدم قسمت آنلاین رو بزنم و تمومش کنم ولی در نهایت دوست دارم بعد از تحویل این پروژه مفصل و اساسی کار با php رو یاد بگیرم
در ضمن یک نکته دیگه هم داره اینکه من توی اندروید هم وضعیت مشابهی رو دارم یعنی توی پیاده سازی یک برنامه اندرویدی کامل بصورت آفلاین هیچ مشکلی ندارم یعنی راحت با دیتابیس کار می کنم و برنامه رو به اتمام می رسونم ولی آنلاین هیچ چیز سردر نمیارم بنابراین اگر بتونم سمت php رو یاد بگیرم در واقع با یک تیر دو نشون زدم

رامین مرادی
دوشنبه 06 فروردین 1397, 19:45 عصر
10 گیگ حجم 200 گیگ پهنای باند 400 مگ دیتابیس اس اس ال رایگان دامنه ir رایگان همگی 90 هزار تومان سالیانه
در خصوص پیاده سازی هم من هنوز قسمت آنلاین برنامه ام رو هیچ کاری انجام ندادم و قسمت های آفلاین رو تمام کردم (پروژه ام شامل دو تا برنامه هست که 70 درصد قسمت های برنامه آفلاین و با دیتابیس لوکال هست و 30 درصد آنلاین هست)



ممنون ار توضیحاتتون جناب مرادی عزیز
بعله من هم دقیقا با asp خیلی حال نمی کنم و با php راحتترم
الان هم به دلیل کمبود وقت میخوام فقط درحد اینکه بتونم پروژه رو تکمیل کنم و تحویل بدم قسمت آنلاین رو بزنم و تمومش کنم ولی در نهایت دوست دارم بعد از تحویل این پروژه مفصل و اساسی کار با php رو یاد بگیرم
در ضمن یک نکته دیگه هم داره اینکه من توی اندروید هم وضعیت مشابهی رو دارم یعنی توی پیاده سازی یک برنامه اندرویدی کامل بصورت آفلاین هیچ مشکلی ندارم یعنی راحت با دیتابیس کار می کنم و برنامه رو به اتمام می رسونم ولی آنلاین هیچ چیز سردر نمیارم بنابراین اگر بتونم سمت php رو یاد بگیرم در واقع با یک تیر دو نشون زدم


خب ببینید شما همین پروژتون رو خیلی راحت میتونید پویا کنید.ببنید مثلا شما فعلا این بخش رو تو پی اچ پیاده سازی کنید اگه بعدا به هر دلیلی دیدید که نیاز های شما رو برطرف نمیکنه یا خواستید برید سمت هاست ویندوزی میتونید فقط قسمت وب سرویس رو تغییر بدید یعنی به جای پی اچ پی شما با اس اس پی وب سرویستون رو بنویسید و جایگزینش کنید . یه بخش تنظیمات هم تو برنامتون بدید که کاربر بتونه آدرس وب سرویس رو تغییر بده بدون هیچ دردسری مهاجرت کنید به asp . البته بازم همه اینا سلیقه ای هست و مربوط به خودتون هست با چه روشی پیش برید. همه اینا کلا آخرش یه هدفی رو براتون انجام میدن. php و asp وسیله س :لبخند:

همین با php که وب سرویس نوشتید خیلی خیلی راحت میتونید با کتابخونه vollay یا رتروفیت (من خودم vollay رو ترجیح میدم) به وب سرویس وصل بشید و برنامتون رو آنلاین کنید.
بحث تایپیک داره به انحراف کشیده میشه:چشمک: