mysql_query()期望参数2是资源,给定的是布尔值

时间:2013-01-18 10:32:21

标签: php mysql

我看了类似于我的问题的其他答案,但似乎无法解决这个问题。

这是代码。

  $connection = mysql_connect("localhost","root","starwars");
  $conn = mysql_select_db("project", $connection);

        // This code assumes $itemID is set to that of 
   // the item that was just rated. 
   // Get all of the user's rating pairs
   $sql = "SELECT DISTINCT r.itemID, r2.ratingValue - r.ratingValue 
               as rating_difference
               FROM rating r, rating r2
               WHERE r.userID=$userID AND 
                       r2.itemID=$itemID AND 
                       r2.userID=$userID;";

   $db_result = mysql_query($sql, $conn);
   echo "The result is {$db_result}";
   $num_rows = mysql_num_rows($db_result)or die('Cannot Execute:'. mysql_error());

显示的错误是:

  

警告:mysql_query()期望参数2是资源,布尔值   在C:\ xampp \ htdocs \ recomender \ ratingfiles \ class.rating.php中给出   第177行

第177行

   $db_result = mysql_query($sql, $conn);

如果我回显$conn它会给出“1”的值,我认为它等于真,因此布尔值,任何想法?

4 个答案:

答案 0 :(得分:1)

这可能意味着$conn是错误的,这意味着它没有正确设置。您可能想要检查如何设置它并确保数据库连接详细信息正确,并且运行它的服务器可以访问数据库服务器。

请查看此页面上的返回值:

http://php.net/manual/en/function.mysql-connect.php

答案 1 :(得分:1)

$connection作为第二个参数传递,而不是$conn

您将mysql_select_db的结果分配给$ conn,mysql_select_db返回true或false,而不是连接资源。

答案 2 :(得分:0)

将前2行更改为

$conn = mysql_connect("localhost","root","starwars");
mysql_select_db("project", $conn);

或者更好的是,根本不要使用连接变量

mysql_connect("localhost","root","starwars");
mysql_select_db("project");
...
$db_result = mysql_query($sql);

答案 3 :(得分:-1)

$db_result = mysql_query($sql, $connection);

mysql_connect的第二个参数必须

MySQL连接。如果未指定链接标识符,则假定mysql_connect()打开的最后一个链接。如果没有找到这样的链接,它将尝试创建一个,就好像没有参数调用mysql_connect()一样。如果未找到或建立连接,则会生成E_WARNING级别错误。

http://php.net/manual/en/function.mysql-query.php