Wednesday, June 30, 2010

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

  • PHP มันแจ้ง error ประมาณบรรทัดเนี๋ย while ($row = mysql_fetch_array($result)) {}
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
  • ประเด็นหลักๆ ให้เรามุ่งไปที่ sql statement อาจมี query ที่เขียนผิด เช่น ชื่อ table, column ผิดเป็นต้น
  • ประเด็นต่อมา $result = mysql_query("SELECT * FROM MYTABLE"); ประโยคประมาณนี้ เราต้องใส่แบบงี้ MYDB.MYTABLE คือระบุ db ไปด้วย ประมาณว่า connection มันไม่รู้ว่า db ตัวใหนที่เราอยากจะ query หว่ามันเลย error
  • ต้องเป็นประมาณนี้
$result = mysql_query("SELECT * FROM MYDB.MYTABLE");
  • หรือเราสามารถเรียกใช้แบบนี้ได้คือ ระบุฐานข้อมูลโดย function นี้เลย
$result = mysql_db_query("MYDB","SELECT * FROM MYTABLE");
  • แต่ mysql_db_query(); ใน PHP 5.3
Warning: This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.
  • เค้าแนะนำให้เขียนแบบนี้
<?php

if (!$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
echo 'Could not connect to mysql';
exit;
}

if (!mysql_select_db('mysql_dbname', $link)) {
echo 'Could not select database';
exit;
}

$sql = 'SELECT foo FROM bar WHERE id = 42';
$result = mysql_query($sql, $link);

if (!$result) {
echo "DB Error, could not query the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}

while ($row = mysql_fetch_assoc($result)) {
echo $row['foo'];
}

mysql_free_result($result);

?>

อ้างอิง
  • http://www.php.net/manual/en/function.mysql-db-query.php
  • http://www.phpbuilder.com/board/showthread.php?t=10352905

No comments:

Post a Comment