我的问题是,当我想要返回表中的所有行时,我收到此错误:
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);
?>
继承了网站,所以你可以看到错误是什么
答案 0 :(得分:2)
我可以看到您的示例脚本出现一些错误,希望这可以解释它们。
$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'的结果可能是布尔值false。
这可能是因为您连接的用户没有您指定的表/ db的权限,更有可能是因为您错过了'mysql_select_db'而发生错误。
无论哪种方式,你最好检查$ result并在出现问题时退出/抛出异常,即
if ($result === false)
{
echo "Error with result variable";
exit();
}
希望无论如何应该对脚本的大多数问题进行排序,并且运气好的话可以解释为什么会出现问题
答案 1 :(得分:1)
you have syntax error to connect database
$con=mysql_connect('mysql11.000webhost.com', 'db_username', 'db_password','Table');
change to
$con=mysql_connect('mysql11.000webhost.com', 'db_username', 'db_password','databasename');
答案 2 :(得分:0)
$con
应该是
$result = mysql_query("SELECT * FROM PageInfo",$con);
尝试,
$result = mysql_query($con,"SELECT * FROM PageInfo");
$result = mysql_query("SELECT * FROM PageInfo",$con) or die(mysql_error());
并找出确切的原因。
答案 3 :(得分:0)
你还没有选择数据库,我也不相信你应该为mysql_connect设置第四个参数“Table”。请尝试这样做,确保将“database_name”替换为您的实际数据库名称。
$con=mysql_connect('mysql11.000webhost.com', 'db_username', 'db_password');
$db = mysql_select_db('database_name');
$result = mysql_query("SELECT * FROM PageInfo");
var_dump( mysql_fetch_array($result) );