错误:警告:mysqli_fetch_array()要求参数1为mysqli_result,第15行/var/www/html/data.php中给出布尔值[复制]

错误:警告:mysqli_fetch_array()要求参数1为mysqli_result,第15行/var/www/html/data.php中给出布尔值[复制]

问题描述:

I am trying to select data from a MySQL table to show data's in my c# datagridview, but I get one of the following error messages:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /var/www/html/data.php on line 15

This is my PHP code:

<?php 

$servername = "********";
$username = "root";
$password = "pws";
$dbname = "dbs";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
$sql = "SELECT userid,password,first_name,last_name,role,active FROM aster_users";
$result = mysql_query($sql);
while($row = mysqli_fetch_array($result)) 
    {
        $userid=$row['userid'];
        $password=$row['password'];
        $first_name=$row['first_name'];
        $last_name=$row['last_name'];
        $role=$row['role'];
        $active=$row['active'];
    }
$conn->close();
?>

Help me,

</div>

此问题已经存在 这里有一个答案: p>

  • mysql_fetch_array()/ mysql_fetch_assoc()/ mysql_fetch_row()/ mysql_num_rows etc ...期望参数1为资源或结果 32 answers span> li> ul> div>

    我试图从MySQL表中选择数据来显示我的c#datagridview中的数据,但是我收到以下错误消息之一: p>

    警告:mysqli_fetch_array()要求参数1为mysqli_result,在第15行的/var/www/html/data.php中给出 布尔值 p> blockquote>

    这是我的PHP代码: p>

     &lt;?php 
     
     $ servername =“**  ******“; 
     $ username =”root“; 
     $ password =”pws“; 
     $ dbname =”dbs“; 
     
     $ conn = new mysqli($ servername,$ username  ,$ password,$ dbname); 
     
    if($ conn-&gt; connect_error){
     die(“连接失败:”。  $ conn-&gt; connect_error); 
    } 
     $ sql =“SELECT userid,password,first_name,last_name,role,active FROM aster_users”; 
     $ result = mysql_query($ sql); 
    while($ row =  mysqli_fetch_array($ result))
     {
     $ userid = $ row ['userid']; 
     $ password = $ row ['password']; 
     $ first_name = $ row ['first_name']; 
      $ last_name = $ row ['last_name']; 
     $ role = $ row ['role']; 
     $ active = $ row ['active']; 
    } 
     $ conn-&gt; close()  ; 
    ?&gt; 
      code>  pre> 
     
     

    帮帮我, p> div>

You cannot mix the mysql and mysqli. For database queries please use mysqli_query($conn,$query). http://php.net/manual/en/mysqli.query.php

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
$sql = "SELECT userid,password,first_name,last_name,role,active FROM aster_users";
$result = mysqli_query($conn,$sql); // NOTICE HOW THIS IS MYSQLI QUERY. NOT MYSQL
while($row = mysqli_fetch_array($result)) 
    {
        $userid=$row['userid'];
        $password=$row['password'];
        $first_name=$row['first_name'];
        $last_name=$row['last_name'];
        $role=$row['role'];
        $active=$row['active'];
    }
mysqli_close($conn); //Use Procedural Code Here. not $conn->close();

Mixing mysql and mysqli in your code !! and Object oriented style with Procedural style

Use

  $conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT userid,password,first_name,last_name,role,active FROM aster_users";
if (!$result = $conn->query($sql)) {
    printf("Error: %s
", $conn->error);
}
$rows = $result->num_rows;
if ($rows > 0) {

    while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
        // your code
    }
} else {
    echo "No result found";
}

Read http://php.net/manual/en/mysqli.query.php

$sql = "SELECT userid,password,first_name,last_name,role,active FROM aster_users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  while($row = $result->fetch_assoc()) {
    $userid=$row['userid'];
    $password=$row['password'];
    $first_name=$row['first_name'];
    $last_name=$row['last_name'];
    $role=$row['role'];
    $active=$row['active'];
  }
} else {
echo "0 results";
}
$conn->close();

Please don't mix mysql_* & mysqli_*object oried style in php.