0

我已经在该网站上待了一段时间,但我似乎无法理解大多数类似问题都得到了此错误的答案:

可捕获的致命错误:无法将类 mysqli 的对象转换为字符串

说它是一个对象。我对 PHP 还很陌生,如果有人可以向我解释这一点,那将真的很有帮助。我正在尝试从我的数据库中检索数据并将其回显到一个表中。

这是我到目前为止所做的:

$dbcon=mysqli_connect("localhost","root","","technoage");

if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$results = mysql_query("SELECT * FROM items WHERE item_id = 1,$dbcon");
if(!$results)
{
    die("Database query failed".mysql_error());
}
while($row = mysql_fetch_array($results))
{
    echo $row['descreption']." ".$row['price']."<br/>";
}
4

3 回答 3

5

您与mysqli

但你正在查询mysql

$results = mysql_query("SELECT * FROM.....
于 2013-10-08T10:41:49.233 回答
1

当您将 mysqli 与 mysql 混合时,用 mysqli 而不是 mysql 重写您的代码。

这个

   $results = mysql_query("SELECT * FROM items WHERE item_id = 1,$dbcon");

应该

   $results = mysqli_query($dbcon, "SELECT * FROM items WHERE item_id = 1");

和这个

     while($row = mysql_fetch_array($results))

应该

    while($row = mysqli_fetch_array($results))
于 2013-10-08T10:42:11.460 回答
0

这个错误不是mysql和mysqli混用引起的。它是由插入$dbcon到您的 SQL 字符串本身引起的,这里:

$results = mysql_query("SELECT * FROM items WHERE item_id = 1,$dbcon");
                                                           // ^ here

连接应作为第一个参数传递,查询作为第二个参数传递。您将其插入 SQL 字符串并将其作为单个参数传递,这意味着 PHP 会尝试将对象转换为字符串。

改成:

$results = mysqli_query($dbcon, "SELECT * FROM items WHERE item_id = 1");

正如其他人指出的那样,您需要更改所有mysql_引用,mysqli_但这是您的次要问题。直接的问题是字符串问题,一旦修复,您将遇到混合 mysql 问题。

于 2013-10-08T10:53:46.147 回答