-1

我不断收到一条错误消息:

致命错误:在第 46 行 C:\wamp\www\Website\index.php 中的非对象上调用成员函数 execute()

下面是我的代码。可能出了什么问题?我现在只是使用股票根帐户。

<?php

$dbserver="localhost";
$username="root";
$password="";
$connection=mysql_connect("$dbserver","$username","$password")or die("could not connect to the server");

//execute an SQL statement and return a recordset
$rs = $connection->execute("SELECT product_name FROM products");
$num_columns = $rs->Fields->Count();

echo "<table border='1'>"; 
echo "<tr><th>Name</th></tr>";
while (!$rs->EOF) //looping through the recordset (until End Of File)
{
     echo "<tr>";
     for ($i=0; $i <  $num_columns; $i++) {
         echo "<td><a href=\"product.php?id=" . $rs->Fields('id').value . "\">" . $rs->Fields($i)->value . "</a></td>";
     }
     echo "</tr>";
     $rs->MoveNext();
}
echo "</table>";

//close the recordset and the database connection
$rs->close();
$rs = null;
$conn->close();
$conn = null;
?> 
4

1 回答 1

0

该函数mysql_connect返回一个资源。这意味着变量$connection不是对象,因此您不能execute在其上调用函数。这解释了错误消息。

代码中大多数与数据库相关的函数调用 ( Fields, MoveNext, ...) 似乎与ADOdb相关。这些不适用于由mysql_*函数创建的资源(或行集)。

有关更多信息,请参阅 ADOdb 的文档和 PHP 的 mysql 扩展的文档。

由于 PHP 的原始 mysql 扩展已弃用且 ADOdb 更新不频繁,我建议使用PDO进行数据库访问。

于 2013-08-07T22:59:08.790 回答