【发布时间】:2014-05-28 14:25:31
【问题描述】:
是的...这个问题已经发布了很多次。这是一个示例:Fatal error: Call to a member function query()on a non-object。但是我浏览了许多这些重复的帖子,找不到解决方案
我从这个网站(nine-to-five)提取了这个(工作)代码
但我修改了我的代码(与 SO 帖子不同)以包含帖子答案中提到的代码,但我仍然收到错误:
// Credentials
$dbhost = "localhost";
$dbname = "qmsdb";
$dbuser = "root";
$dbpass = "";
// Connection
global $tutorial_db;
$tutorial_db = new mysqli();
$tutorial_db->connect($dbhost, $dbuser, $dbpass, $dbname);
$tutorial_db->set_charset("utf8");
// Check Connection
if ($tutorial_db->connect_errno) {
printf("Connect failed: %s\n", $tutorial_db->connect_error);
exit();
}
// Get Search
$search_string = preg_replace("/[^A-Za-z0-9]/", " ", $_POST['query']);
$search_string = $tutorial_db->real_escape_string($search_string);
// Check Length More Than One Character
if (strlen($search_string) >= 1 && $search_string !== ' ') {
// Build Query
$query = 'SELECT * FROM compressors WHERE MUNPN LIKE "%'.$search_string.'%" OR name LIKE "%'.$search_string.'%"';
// Do Search
$result = mysql_query($query);
while($results = $result->fetch_array()) {
$result_array[] = $results;
}
.... more code that doesn't apply....
}
错误是:“Fatal call to member function fetch_array() on a non object”并且该行指向:
while($results=$results->fetch_array()) {
我对 Php/MySQL 非常陌生 - 因此,我们将不胜感激任何帮助。
谢谢!
.
【问题讨论】:
-
你在混合mysql和mysqli_
-
您使用 MySQLi 连接 (
new mysqli();),然后使用mysql_query执行查询。那是行不通的。 -
^--« ... 意思,把
$result = mysql_query($query);改成$result = mysqli_query($query); -
如果“更多不适用的代码”意味着拥有更多
mysql_*函数,那么就停在那里。 -
我改成了
mysqli_query($query),但我现在得到一个错误“mysqli_query 需要至少 2 个参数”