在我的网站上,我改变了这个:
$genre_result = mysql_query
(
" SELECT g.genre_id, g.genre_name
FROM genres as g;"
);
$game_result = mysql_query
(
" SELECT g.genre_id, g.game_id, g.game_name
FROM games as g;"
);
$genre_array = array();
$game_array = array();
while ($genre_row = mysql_fetch_row($genre_result))
{
$genre_index = $genre_row[0] - 1;
$genre_array[$genre_index] = $genre_row[1];
$game_array[$genre_index] = array();
$game_array[$genre_index][] = array();
$game_array[$genre_index][] = array();
}
while ($game_row = mysql_fetch_row($game_result))
{
$genre_index = $game_row[0] - 1;
$game_array[$genre_index][0][] = $game_row[1];
$game_array[$genre_index][1][] = $game_row[2];
}
为此(我将 SELECT 块复制到两个新过程中):
$genre_result = mysql_query
(
"CALL get_genres();"
);
$game_result = mysql_query
(
"CALL get_games();"
);
$genre_array = array();
$game_array = array();
while ($genre_row = mysql_fetch_row($genre_result))
{
$genre_index = $genre_row[0] - 1;
$genre_array[$genre_index] = $genre_row[1];
$game_array[$genre_index] = array();
$game_array[$genre_index][] = array();
$game_array[$genre_index][] = array();
}
while ($game_row = mysql_fetch_row($game_result)) // line #61
{
$genre_index = $game_row[0] - 1;
$game_array[$genre_index][0][] = $game_row[1];
$game_array[$genre_index][1][] = $game_row[2];
}
现在我收到第 61 行的 PHP 错误(我已在上面的代码中标记):
警告:mysql_fetch_row() 期望参数 1 是资源,布尔值在第 61 行的 /home2/isometr1/public_html/keyboard/keyboard.php 中给出
get_genres() 和 get_games() 过程在 phpmyadmin 中正常工作,返回正确的值。我做错了什么以至于我的代码不起作用?
此外,phpmyadmin 发出此投诉,但我不知道它是否相关:
您正在使用 PHP 已弃用的 'mysql' 扩展,它不能处理多个查询。某些存储例程的执行可能会失败!请使用改进的“mysqli”扩展名以避免任何问题。
[编辑 1]
我像这样尝试了 mysql_error() :
$genre_result = mysql_query("CALL get_genres();", $con);
echo mysql_errno($con) . ": " . mysql_error($con) . "\n";
$game_result = mysql_query("CALL get_games();", $con);
echo mysql_errno($con) . ": " . mysql_error($con) . "\n";
并得到这个错误:
0:2014:命令不同步;你现在不能运行这个命令
这是我的版本号:
MySQL version 5.1.70-cll
phpMyAdmin version 3.5.8
cpanel version 11
PHP version 5.3.22
[编辑 2]
根据 GolezTrol 的建议,我也尝试了这个,但没有任何改进:
// genres & games
$genre_array = array();
$game_array = array();
$genre_result = mysql_query("CALL get_genres();", $con);
while ($genre_row = mysql_fetch_row($genre_result))
{
$genre_index = $genre_row[0] - 1;
$genre_array[$genre_index] = $genre_row[1];
$game_array[$genre_index] = array();
$game_array[$genre_index][] = array();
$game_array[$genre_index][] = array();
}
$game_result = mysql_query("CALL get_games();", $con);
while ($game_row = mysql_fetch_row($game_result))
{
$genre_index = $game_row[0] - 1;
$game_array[$genre_index][0][] = $game_row[1];
$game_array[$genre_index][1][] = $game_row[2];
}