سلام، در مورد گرفتن اطلاعات از پایگاه داده توسط pdo از mysql مشکل دارم. عبارت SELECT ساده که با fetchAll مینویسم. مثل اموزش قسمت PHP. اما چنین اروری میده:
Fatal error: Uncaught Error: Call to a member function fetchAll() on boolean in C:\xampp\htdocs\test\index\index.php:13 Stack trace: #0 {main} thrown in C:\xampp\htdocs\test\index\index.php on line 13
<?php
try {
$dsn = "mysql:host=localhost;dbName=amir";
$PDO = new PDO($dsn, "root", "");
} catch (PDOException $e) {
die($e->getMessage());
}
$st = $PDO->prepare("SELECT * FROM users");
$res = $st->execute();
$result = $res->fetchAll(PDO::FETCH_OBJ);
print_r($result);
سلام مجدد
@amir.psh
ایرادی نداره
شما توی پرانتز رو خالی کنید
$result = $res->fetchAll();
مثال های بیشتر هم توی لینک زیر هست
https://www.php.net/manual/en/pdostatement.fetchall.php
اونی که شما نوشتید برای برگردوندن یه آبجکت هست
مثال هارو ببینید متوجه میشید خودتون.
از اول هم توی پرانتز خالی بود، اینو یکم پیش اضافه کردم.
هرجور امتحان کردم، چه با prepare چه query این مشکلو دارم.
هر کاری میکنم به نتیجه نمیرسم.
شاید اشکال از xampp باشه
@hesammousavi سلام اقای موسوی
میشه در این مورد راهنمایی کنید
@Alimotreb تشکر علی اقا، اما مشکل حل نشد
@Alimotreb ممنون علی اقا،
منم موندم چرا چیز به این سادگی کلا کار نمیکنه یا فقط یه آرایه خالی برمیگردونه.
حالا اگه pdo فعال نباشه چجوری باید فعال شه
سلام خسته نباشی شما داری یه آبجکت بر می گردونی بهترین کار اینه که با یه for each اطلاعات رو چاپ کنی فکر نکنم دیگه ایراد بگیره اینم نمونه کد .شاید جواب بده
foreach ($result as $res){
echo $res;
}
@davoodkhany
@Alimotreb
ممنون از توجهتون
اما مساله چیز دیگهیی بود ک خیلی اتفاقی فهمیدم. شاید باورتون نشه ولی اگه dbName رو dbname مینوشتم درست کار میکرد! الان درست شده. من تو یوتیوب یا جاهای دیگه دیده بودم که توتعریف dsn هم dbname وهم dbName استفاده میکردن مشکلی پیش نمیومد.
حالا اینجا چرا اینجوری شد نمیدونم.
حتی خود phpstorm پیشنهاد میده که n رو با حرف بزرگ بنویسیم. ولی با حرف کوچک کار میکنه
تشکر
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟