Ehsaan 87 ارسال شده در 14 شهریور، 2015 اشتراک گذاری ارسال شده در 14 شهریور، 2015 سلام دوستان؛ طبق درخواست یکی از دوستان، آموزش PDO رو به صورت متنی قرار میدم. بیشتر دوستان از MySQL Improved برای اتصال به دیتابیس استفاده میکنن که به هیچ عنوان امن نیست و امنکردن اون هم کار راحتی نیست. علاوه بر این، MySQLi در کوئریهای سنگین و زیاد کم میاره. راه بهتر، سادهتر، امنتری هم هست که به نام PDO شناخته میشه. اتصال به دیتابیس خب، اولین مرحله، اتصال به دیتابیس هست. شما میتونید این دستورات رو توی یه فایل مشخص مثل init یا bootstrap بنویسید (یا هر اسم دیگه). <?php $db = new PDO( 'mysql:host=localhost;dbname=your_db;charset=utf8', 'username', 'password' ); شما میتونید به جای localhost آدرس هاست MySQL خودتون رو بزارید؛ به جای your_db اسم دیتابیستون، به جای username نام کاربری و password رمزعبور ورود به MySQL اجرای یه کوئری شما میتونید خیلی راحت یه کوئری اجرا کنید و مشتقات اون رو هم بگیرید. فقط دقت کنید که باید $db رو داشته باشید. بنابراین شما باید دستورات خودتون رو در همون فایل اجرا کنید یا اینکه هربار به دیتابیس وصل شید (تاثیری در سرعت نداره). $db->query( 'SELECT * FROM table' ); برای خروجی گرفتن میتونید به این صورت استفاده کنید: $stmt = $db->query( 'SELECT * FROM table' ); while( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ) { echo $row['name'] . ' - ' . $row['content']; همچنین میتونید برای دستورات INSERT, UPDATE, DELETE از دو مثال پیش استفاده کنین. همچنین، اگه میخواید داده ای از کاربر دریافت کنید، قطعاً خطر هک وجود داره، شما میتونید به راحتی از این خطر پیشگیری کنید: $stmt = $db->prepare( 'INSERT INTO somewhere VALUES( ?, ? ); $stmt->execute( array( $name, $content ) ); شما میتونید از تراکنشها برای کوئریهای زیاد و سنگین استفاده کنید تا هم سرعت بسیار بالاتر باشه و هم امکان بازگردوندن باشه. <?php try { $db->beginTransaction(); $db->exec("SOME QUERY"); $stmt = $db->prepare("SOME OTHER QUERY?"); $stmt->execute(array($value)); $stmt = $db->prepare("YET ANOTHER QUERY??"); $stmt->execute(array($value2, $value3)); $db->commit(); } catch(PDOException $ex) { //Something went wrong rollback! $db->rollBack(); echo $ex->getMessage(); } سوالی بود، درخدمتم. موفق باشید. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Nemesis 1,846 ارسال شده در 14 شهریور، 2015 اشتراک گذاری ارسال شده در 14 شهریور، 2015 یه سوال به نطر شما اگه در سرویس CRUD خوذمون که به عنوان وب سرویس هم استفاده میشه از Session استفاده کنیم که با دستگاه لاگین بشه کار غیر منطقی هست ؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Ehsaan 87 ارسال شده در 14 شهریور، 2015 سازنده اشتراک گذاری ارسال شده در 14 شهریور، 2015 خیر، فقط باید دستگاه رو به خوبی هماهنگ کنید که Session ID به هم نخوره. خود من معمولاً از RSA استفاده میکنم که البته روی هاست هایی که IP Static دارن جواب میده. ولی روی همون هاست اشتراکی شما میتونید از Session استفاده کنید. موفق باشید. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Nemesis 1,846 ارسال شده در 14 شهریور، 2015 اشتراک گذاری ارسال شده در 14 شهریور، 2015 در خصوص RSA توضیح میدید؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Ehsaan 87 ارسال شده در 14 شهریور، 2015 سازنده اشتراک گذاری ارسال شده در 14 شهریور، 2015 RSA رو با استفاده از کلیدی که روی سرور و روی موبایل بود ساختم (البته، این معمولاً وقتی کاربرد داره که دیوایسهای شما کنترلشده باشن) و RSAرو هر بار با استفاده از OpenSSL تایید صلاحیت کردم، در صورتی که صلاحیت اون مشکلی نداشت، عمل انجام میشد. موفق باشید. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
hoseinshoja 13 ارسال شده در 11 اسفند، 2015 اشتراک گذاری ارسال شده در 11 اسفند، 2015 اقا من بلد نیستم با دیتابیس کار کنم و این پست های بالا رو هیچی نفهمیدم لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Elyas Erfani 3,582 ارسال شده در 11 اسفند، 2015 اشتراک گذاری ارسال شده در 11 اسفند، 2015 اقا من بلد نیستم با دیتابیس کار کنم و این پست های بالا رو هیچی نفهمیدم خوب برادر من ۱۰۰تا اموزش هست دیتابیس انلاین هم باید اموزششو از فروشگاه بخری ی نگاهی ب تاریخ تاپیک بنداز لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.