PDA

View Full Version : سوال: توضیحات در مورد pdo emulate prepare



foreach
جمعه 13 دی 1392, 10:01 صبح
سلام دوستان لطفا در مورد


$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

یکم توضیح بدین که اگه فعال یا غیر فعال باشه چه عملی رو انجام میده
تشکر

metal gear solid 4
جمعه 13 دی 1392, 13:05 عصر
درخواست های SQL رو واسه اجرا آماده میکنه. اگر از MySQL 5.1 به بالا استفاده میکنی. بگذار false باشه. چراکه در این نسخه ها MySQL خودش prepare() رو داره و PDO ازش استفاده میکنه.

foreach
جمعه 13 دی 1392, 14:05 عصر
درخواست های SQL رو واسه اجرا آماده میکنه. اگر از MySQL 5.1 به بالا استفاده میکنی. بگذار false باشه. چراکه در این نسخه ها MySQL خودش prepare() رو داره و PDO ازش استفاده میکنه.
در این صورت اگه false باشه یه همچین کوئری اجرا میشه ؟



PREPARE stmt FROM "SELECT * FROM myTable WHERE myTableId = ?";
SET @myTableId = 1;
EXECUTE stmt USING @myTableId;

metal gear solid 4
جمعه 13 دی 1392, 14:18 عصر
اگر False کنید و نسخه ی MySQL شما قدیمی تر از 5.1 باشه تا جایی که من میدونم خیر. شما با False کردن این گزینه به PDO میگید که از prepare() های درون ساخته ی خود MySQL استفاده کن. در صورتی که MySQL شما نسخه ی کمتر از 5.1 باشه کوئری شما اچرا نمیشه.

foreach
جمعه 13 دی 1392, 14:27 عصر
اگر False کنید و نسخه ی MySQL شما قدیمی تر از 5.1 باشه تا جایی که من میدونم خیر. شما با False کردن این گزینه به PDO میگید که از prepare() های درون ساخته ی خود MySQL استفاده کن. در صورتی که MySQL شما نسخه ی کمتر از 5.1 باشه کوئری شما اچرا نمیشه.
بسیار خوب پس اگه false باشه و نسخه mysql بالاتر از 5.1 باشه کوئری شبیه کوئری که در بالا نوشتم اجرا میشه.
خیلی خیلی ممنون