Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP MySQLi对非对象的成员函数fetch_array()的致命调用_Php_Mysql_Mysqli_Fetch - Fatal编程技术网

PHP MySQLi对非对象的成员函数fetch_array()的致命调用

PHP MySQLi对非对象的成员函数fetch_array()的致命调用,php,mysql,mysqli,fetch,Php,Mysql,Mysqli,Fetch,是的……这个问题已经发布过很多次了。下面是一个例子:。但我看过很多重复的帖子,却找不到解决办法 我从这个网站上提取了这个(工作)代码() 但是我修改了我的代码(这与SO帖子不同),将帖子答案中提到的代码包括在内,我仍然得到一个错误: // Credentials $dbhost = "localhost"; $dbname = "qmsdb"; $dbuser = "root"; $dbpass = ""; // Connection global $tutori

是的……这个问题已经发布过很多次了。下面是一个例子:。但我看过很多重复的帖子,却找不到解决办法

我从这个网站上提取了这个(工作)代码()

但是我修改了我的代码(这与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....

    }
错误为:“对非对象的成员函数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)是如何工作的,但不是这个?可能是因为它从来没有工作过,或者是你为了自己的使用而修改它时引入了拼写错误。