我的问题是当我想返回表中的所有行时出现此错误:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
/home/a2943462/public_html/index.php on line 20
我也尝试了 array、assoc、row 但它们都不起作用,这是我的代码:
<?php
$con=mysql_connect('mysql11.000webhost.com', 'db_username', 'db_password','Table');
// Check connection
if (!$con) {
echo "Failed to connect to MySQL: " . mysql_connect_error();
}
$result = mysql_query("SELECT * FROM PageInfo",$con);
echo $result;
echo $row['ID'];
echo "<table border='1'>
<tr>
<th>ID</th>
<th>Title</th>
<th>Video</th>
<th>Posted</th>
</tr>";
while ($row = mysql_fetch_array($result)) { // Line 20
echo "<tr>";
echo "<td>".$row["ID"]."</td>";
echo "<td>".$row["Title"]."</td>";
echo "<td>".$row["Video"]."</td>";
echo "<td>".$row["Posted"]."</td>";
echo "</tr>";
}
echo "</table>";
mysql_free_result($result);
mysql_close($con);
?>
这是网站,所以你可以看到错误是什么
最佳答案
我可以看到您的示例脚本有几个错误,希望这会解释它们。
$con=mysql_connect('mysql11.000webhost.com', 'db_username', 'db_password','Table');
应该是:
$con=mysql_connect('mysql11.000webhost.com', 'db_username', 'db_password');
根据 http://uk1.php.net/mysql_connect第四个参数应该是链接连接器,而不是您指定的表选择。
您还需要指定您从中获取数据的表所在的数据库,这可以通过在完成“mysql_connect”之后运行来完成
$db = mysql_select_db('database_name', $con);
我注意到您还试图在分配“$row”参数之前访问它(第 11 行),即
echo $row['ID'];
而您只在 while 循环的第 20 行分配它。
此外,一旦你运行:
$result = mysql_query("SELECT * FROM PageInfo",$con);
根据 http://uk1.php.net/manual/en/function.mysql-query.php,您需要在尝试访问结果之前检查它的值如果您输入的查询有问题,“mysql_query”的结果可以是 bool 值 false。
这可能是因为您连接的用户没有访问您指定的表/数据库的权限,更有可能是因为您错过了“mysql_select_db”而发生了错误。
无论哪种方式,您最好检查 $result 并在出现问题时退出/抛出异常,即
if ($result === false)
{
echo "Error with result variable";
exit();
}
希望无论如何,这应该可以解决脚本中的大部分问题,如果运气好的话,可以通过某种方式解释问题存在的原因
关于PHP 返回行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23539457/