PHP MySQLi对非对象的成员函数fetch_array()的致命调用
是的……这个问题已经发布过很多次了。下面是一个例子:。但我看过很多重复的帖子,却找不到解决办法 我从这个网站上提取了这个(工作)代码() 但是我修改了我的代码(这与SO帖子不同),将帖子答案中提到的代码包括在内,我仍然得到一个错误:PHP MySQLi对非对象的成员函数fetch_array()的致命调用,php,mysql,mysqli,fetch,Php,Mysql,Mysqli,Fetch,是的……这个问题已经发布过很多次了。下面是一个例子:。但我看过很多重复的帖子,却找不到解决办法 我从这个网站上提取了这个(工作)代码() 但是我修改了我的代码(这与SO帖子不同),将帖子答案中提到的代码包括在内,我仍然得到一个错误: // Credentials $dbhost = "localhost"; $dbname = "qmsdb"; $dbuser = "root"; $dbpass = ""; // Connection global $tutori
// 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....
}
错误为:“对非对象的成员函数fetch_array()的致命调用”,该行指向:
while($results=$results->fetch_array()) {
我对Php/MySQL非常陌生,因此在此方面的任何帮助都将不胜感激
谢谢
$tutorial_db = new mysqli();
^----note the "i"
$result = mysql_query($query);
^-- note the LACK of an "i"
while($results = $result->fetch_array()) {
^^^^^^^^---- not an object, because mysql_*() functions are NOT objects
不能在任何其他库中使用在一个DB库(pdo、mysqli、mysql)中创建的DB句柄/对象。他们可能都在私下与MySQL交谈,但他们各自的句柄/对象不兼容。您混合使用MySQL和mysqli\u您使用mysqli连接(
new mysqli();
),然后使用MySQL\u query
执行查询。那不行。^--«。。。意思是,change$result=mysql\u query($query)
至$result=mysqli\u查询($query)
如果“更多不适用的代码”意味着拥有更多的mysql\u*
函数,那么就到此为止。我改为mysqli\u query($query)
,但我现在得到一个错误“mysqli\u query至少需要两个参数”“它们可能都在引擎盖下与mysql对话……但今晚不会一起开车进来。”谢谢。但这仍然没有意义。最初的代码(从9到5)是如何工作的,但不是这个?可能是因为它从来没有工作过,或者是你为了自己的使用而修改它时引入了拼写错误。