ฝึกเขียนภาษา PHP เชื่อมต่อฐานข้อมูล MariaDB โดยใช้คำสั่ง mysqli_fetch_assoc วนลูปแสดงข้อมูล แต่รันแล้วขึ้น Error ว่า Fatal error: Uncaught TypeError: mysqli_fetch_assoc(): Argument #1 ($result) must be of type mysqli_result, bool given แบบนี้ต้องแก้ไขอย่างไร
<?php
$sql = " SELECT * AS value FROM book WHERE ";
$q = mysqli_query( $mysqli, $sql );
while( $f = mysqli_fetch_assoc( $q ) ) {
echo $f['id']."<br/>";
}
?>
วิธีแก้ไข
เมื่อพิจารณาจากโค้ดแล้ว ปัญหานี้เกิดจากคำสั่ง SQL ของตัวแปร sql มีการเขียนผิด ตรง AS value ไม่ต้องใส่ เนื่องจาก SELECT * เป็นการดึงข้อมูลทุก Columns ส่งผลให้เวลาดึงข้อมูลด้วย mysqli_fetch_assoc จึงเกิด Error ขึ้น แนะนำให้แก้ไขคำสั่ง SQL แล้วลองรันใหม่ สามารถแก้ไขได้ดังนี้
<?php
$sql = " SELECT * FROM book WHERE ";
$q = mysqli_query( $mysqli, $sql );
while( $f = mysqli_fetch_assoc( $q ) ) {
echo $f['id']."<br/>";
}
?>