مطالب تکمیلی
PDO::FETCH_BOUND و متد bindColumn از PDOStatement
با استفاده این 2 میتوانید در هنگام fetch به متغیر های از پیش تعریف شده مقدار دهید
مثال
کد PHP:
$db->bindColumn(1,$username); //با شماره
$db->bindColumn('password',$password); //با نام فیلد
while($row = $db->fetch(PDO::FETCH_BOUND))
{
echo $username.'-'.$password;
}
PDO::FETCH_CLASS
با استفاده از این امکان میتوانید خروجی را در یک شی قرار دهید
مثال
PDO::ATTR_EMULATE_PREPARESکد PHP:
class User
{
public $username;
public $password;
}
$STH->setFetchMode(PDO::FETCH_CLASS, 'User');
while($user = $db->fetch())
{
echo $user->username.'-'.$user->password;
}
قبلا ذکر شد مقدار این خصوصیت را false قرار دهید، اما این خصوصیت چیست
اکثر دیتابیس های جدید از prepare پشتیبانی میکنند ولی ورژن های قدیمی پشتیبانی نمیکنند، هنگامی که این مقدار true باشد pdo عملیات prepare را شبیه سازی میکند،
با این وجود توصیه میشود همیشه این مقدار را خاموش کنید ، چرا که pdo در ورژن جدید php قرار داده شده هست و مسلما هنگامی که ورژن php این هست ورژن دیتابیس هم پشتیبانی خواهد کرد
گرفتن اخرین ای دی ذخیره شده در دیتابیس
اخرین ای دی را به شما بر میگرداندکد PHP:
echo $db->lastInsertId();
تعداد ردیف های تحت تاثیر قرار گرفته
1-اگر از exec استفاده کردید
متد exec تعداد را بر میگرداند
2-اگر از prepare و query استفاده کردید
متد rowCount از PDOStatement تعداد را بر میگرداند