我正在尝试使用mysql_query和mysql_fetch_array从PHP访问MYSQL程序,但是在程序返回有效后,我会在其他查询中收到以下错误。
警告:mysql_fetch_array()期望参数1为资源,布尔值在
中给出我的代码:
function sql_fetch($sql){
global $lang;
$query = mysql_query($sql);
if($query === FALSE) {
die(mysql_error()); // TODO: better error handling
}
while($row = mysql_fetch_array($query))
$a[] = $row;
return $a;
}
$menus = sql_fetch("call GetTop4Products();"); // here returns all right
$news = sql_fetch("select * from news order by date_created desc limit 0,3"); // here returns error.
如果不是调用过程我把程序sql代码放进去,一切都顺利进行。
我收到的错误:
Commands out of sync; you can't run this command now
答案 0 :(得分:1)
您在mysql_fetch_array中传递了错误的参数。必须将查询资源($ result)连接作为参数传递。如果要调用存储过程,则必须使用mysqli_query而不是mysql_query。
How to call a MySQL stored procedure from within PHP code?
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result)) {
printf("ID: %s Name: %s", $row[0], $row[1]);
}
mysql_free_result($result);
?>
答案 1 :(得分:0)
检查变量声明或调用部分中是否缺少引号。在php引号中引起很多头痛