0

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

这是代码。

  $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 是资源,布尔值在第 177 行的 C:\xampp\htdocs\recomender\ratingfiles\class.rating.php 中给出

第 177 行是

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

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

4

4 回答 4

1

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

看看这个页面上的返回值:

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

于 2013-01-18T10:33:55.373 回答
1

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

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

于 2013-01-18T10:34:10.533 回答
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);
于 2013-01-18T10:34:12.160 回答
-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

于 2013-01-18T10:35:53.763 回答