【问题标题】:mysql_fetch_array() expects parameter 1 to be resource null given [duplicate]mysql_fetch_array() 期望参数 1 为资源空给定 [重复]
【发布时间】:2013-06-11 13:18:45
【问题描述】:

我无法弄清楚为什么我不断收到此错误。这是我的代码。我试过换东西,但没有运气。我从书中得到了代码,所以我希望它会起作用,但情况并非总是如此。

警告:mysql_fetch_array() 期望参数 1 是资源,在第 16 行的 C:\xampp\htdocs\CIS224\Company_Cars.php 中给出 null

<!DOCTYPE hmtl PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>

<head>
<title>Create Database</title>
</head>

<body>
<?php
$SQLstring = "SELECT * FROM company_cars";
$QueryResult = @mysql_query($SQLstring, $DBConnect);
echo "<table width ='100%' border='1'\n";
echo "<tr><th>License</th><th>Make</th><th>Model</th><th>Mileage</th><th>Year</th></tr>\n";
while ($Row = mysqli_fetch_array($result) !== FALSE) {
    echo "<tr><td>{$Row[0]}</td>";
    echo "<td>{$Row[1]}</td>";
    echo "<td>{$Row[2]}</td>";
    echo "<td align='right'>{$Row[3]}</td>";
    echo "<td>{$Row[4]}</td></tr>\n";
    }
echo "</table>\n";

?>
</body>
</html>

【问题讨论】:

  • 停止使用@ 作为初学者。然后开始使用mysql_error() 找出问题所在。除非你喜欢在黑暗中刺伤,否则不要问我们。
  • 再一次:Don't use mysql_* extension,因为它们已被弃用。请改用PDOMSQLi
  • 您正在混合使用 mysqlmysqli 命令。两者不可互换...

标签: php mysql


【解决方案1】:

您似乎忘记连接到数据库了。试试

$DBConnect = mysql_connect('host', 'user', 'pass');
$db = mysql_select_db('dbname');

另外你打电话给mysqli_fetch_array,应该是mysql_fetch_array

while ($Row = mysqli_fetch_array($QueryResult) !== FALSE) {
//                 ^ remove      ^ also this!!!

除非您实际使用mysqli_*,在这种情况下查询调用是错误的。您还传递了错误的变量,您的结果是 $QueryResult 而不是 $result

你真的应该放弃 mysql_* 并学习 PDO 或 MySQLi。

【讨论】:

  • +1 mysqliPDO 鼓励...
【解决方案2】:

删除mysql_query()中的@并尝试..

【讨论】:

    【解决方案3】:

    在while循环中改变

      while ($Row = mysqli_fetch_array($QueryResult) !== FALSE) {
    

    替换

      ($result) to ($QueryResult)
    

    【讨论】:

      【解决方案4】:

      你为什么在mysql_query 中使用@ 它返回真或假。

      $QueryResult = mysql_query($SQLstring, $DBConnect);
      

      删除@,就像我在代码中所做的那样。它会起作用的。

      你的mysql_fetch_array函数还有另一个问题:

      while ($Row = mysql_fetch_array($QueryResult))
      

      使用上面的代码代替你的 while 代码。

      并且始终使用 PDO Mysql

      【讨论】:

        猜你喜欢
        • 2011-09-23
        • 2011-06-21
        • 2011-06-05
        • 2011-02-11
        • 2011-08-28
        • 1970-01-01
        • 2012-07-31
        相关资源
        最近更新 更多