راکت
pasha
pasha
توسط pasha مطرح شد
16 پاسخ

مشکل در گرفتن query در php PDO

سلام، در مورد گرفتن اطلاعات از پایگاه داده توسط 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


ثبت پرسش جدید
Alimotreb
Alimotreb
تخصص :کانفیگ سرور و برنامه نویس
@Alimotreb7 سال پیشمطرح شد
1

سلام
@amir.psh

کدتون رو قرار بدید تا ببینیم چیه!
بعد از مرحله

$statment->execute();

چی میزنید که ارور میگیرید؟


pasha
pasha
@amir.psh7 سال پیشمطرح شد
-2

@Alimotreb ممنون از توجه‌ت علی جان. کد رو به این صورت نوشتم:


pasha
pasha
@amir.psh7 سال پیشمطرح شد
2

<?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);

pasha
pasha
@amir.psh7 سال پیشمطرح شد
1

البته ببخشید یکم بهم ریخته شد.
تشکر


Alimotreb
Alimotreb
تخصص :کانفیگ سرور و برنامه نویس
@Alimotreb7 سال پیشمطرح شد
1

سلام مجدد
@amir.psh

ایرادی نداره
شما توی پرانتز رو خالی کنید

$result = $res->fetchAll();

مثال های بیشتر هم توی لینک زیر هست
https://www.php.net/manual/en/pdostatement.fetchall.php

اونی که شما نوشتید برای برگردوندن یه آبجکت هست
مثال هارو ببینید متوجه میشید خودتون.


pasha
pasha
@amir.psh7 سال پیشمطرح شد
1

از اول هم توی پرانتز خالی بود، اینو یکم پیش اضافه کردم.
هرجور امتحان کردم، چه با prepare چه query این مشکلو دارم.
هر کاری میکنم به نتیجه نمیرسم.
شاید اشکال از xampp باشه


pasha
pasha
@amir.psh7 سال پیشمطرح شد
1

@hesammousavi سلام اقای موسوی
میشه در این مورد راهنمایی کنید
@Alimotreb تشکر علی اقا، اما مشکل حل نشد


Alimotreb
Alimotreb
تخصص :کانفیگ سرور و برنامه نویس
@Alimotreb7 سال پیشمطرح شد
1

سلام
@amir.psh

از فعال بودن pdo در ورژن PHP تون اطمینان داشته باشید
چیز خاصی نداره آخه! که دارید ارور میگیرید
یه phpinfo() بگیرید ببینید فعال هست!


pasha
pasha
@amir.psh7 سال پیشمطرح شد
1

@Alimotreb ممنون علی اقا،
منم موندم چرا چیز به این سادگی کلا کار نمیکنه یا فقط یه آرایه خالی برمیگردونه.
حالا اگه pdo فعال نباشه چجوری باید فعال شه


Alimotreb
Alimotreb
تخصص :کانفیگ سرور و برنامه نویس
@Alimotreb7 سال پیشمطرح شد
2

سلام
@amir.psh

خواهش میکنم
در فایل php.ini باید
extention های pdo نوشته شده
از حالت کامنت در بیارید تا فعال شه
; رو باید از اول خطشون پاک کنید
با نوت پد باز کنید
pdo رو سرچ کنید
هر کدوم کامنت بود از کامنت درش بیارید و وب سرور رو یه ریستارت کنید.


pasha
pasha
@amir.psh7 سال پیشمطرح شد
1

متاسفانه اینکار رو هم کردم ولی جواب نداد.
شاید باید نسخه ی xampp رو عوض کنم


داود خانی
داود خانی
تخصص :برنامه نویس لاراول و متخصص سئو
@davoodkhany7 سال پیشمطرح شد
1

سلام خسته نباشی شما داری یه آبجکت بر می گردونی بهترین کار اینه که با یه for each اطلاعات رو چاپ کنی فکر نکنم دیگه ایراد بگیره اینم نمونه کد .شاید جواب بده

foreach ($result as $res){
echo $res;
}

pasha
pasha
@amir.psh7 سال پیشمطرح شد
1

@davoodkhany
@Alimotreb
ممنون از توجه‌تون
اما مساله چیز دیگه‌یی بود ک خیلی اتفاقی فهمیدم. شاید باورتون نشه ولی اگه dbName رو‌ dbname مینوشتم درست کار میکرد! الان درست شده. من تو‌ یوتیوب یا جاهای دیگه دیده بودم که تو‌تعریف dsn هم dbname و‌هم dbName استفاده میکردن مشکلی پیش نمیومد.
حالا اینجا چرا اینجوری شد نمیدونم.
حتی خود phpstorm پیشنهاد میده که n رو‌ با حرف بزرگ بنویسیم. ولی با حرف کوچک کار میکنه
تشکر


Alimotreb
Alimotreb
تخصص :کانفیگ سرور و برنامه نویس
@Alimotreb7 سال پیشمطرح شد
1

سلام
@amir.psh

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


pasha
pasha
@amir.psh7 سال پیشمطرح شد
1

@Alimotreb
خیلی مخلصم علی آقا
تشکر


Alimotreb
Alimotreb
تخصص :کانفیگ سرور و برنامه نویس
@Alimotreb7 سال پیشمطرح شد
1

سلام
@amir.psh

زنده باشید


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام