PHP的SQL mysqli_fetch_array错误

时间:2016-05-31 04:00:40

标签: php mysql sql

以下是代码:

$hidden

然而,在执行时,它不会像预期的那样返回<?php $conexion = mysqli_connect('localhost', 'root', '', 'ingeniera_de_software_db'); $user = $_POST['usuario']; $pass = $_POST['contrasena']; $check = "SELECT count(*) AS A FROM usuarios WHERE usuario = '" . $user . "' AND contraseña = md5('" . $pass . "');"; $resultado = mysqli_query($conexion, $check); $r = mysqli_fetch_array($resultado); echo $r['A']; ?> ,但会返回:

  

警告:mysqli_fetch_array()期望参数1为mysqli_result,   

中给出的布尔值

我试图将查询直接放在sql编辑器中并且它有效,我已经使用了这种类型的查询而没有任何问题。

顺便说一下,我知道这不安全,但我无法通过这一点。

4 个答案:

答案 0 :(得分:0)

尝试这段代码......

buildscript 
{ 
dependencies 
 { 
   classpath 'com.google.gms:google-services:3.0.0' 
 } 
}

由于您获得单个值,即结果计数,并且您正在使用mysql_fetch_array(),因此不需要指定&#34; AS A&#34;。

答案 1 :(得分:0)

尝试以下代码。另外,请确保在 mysqli_connect 中输入了正确的数据库详细信息。

<?php
$conexion = mysqli_connect('localhost', 'root', '', 'ingeniera_de_software_db');

if (mysqli_connect_errno())
{
  echo "Failed to connect to MySQL: " . mysqli_connect_error();die;
}

$user = $_POST['usuario'];
$pass = $_POST['contrasena'];
$check = "SELECT count(*) AS A FROM usuarios WHERE usuario = '" . $user . "' AND contraseña = md5('" . $pass . "');";
$resultado = mysqli_query($conexion, $check);
$r = mysqli_fetch_array($resultado,MYSQLI_ASSOC);
print_r($r);
?>

答案 2 :(得分:0)

由于查询失败(可能是由PHP错误引起),

$resltado可能返回false。因此,调试此方法的一个好方法是使用mysqli_error()并查看是否从MySQL收到任何错误。还要检查是否定义了$_POST

$conexion = mysqli_connect('localhost', 'root', '', 'ingeniera_de_software_db');

if(isset($_POST['usuario'])){ // If POST ISSET

  $user = $_POST['usuario'];
  $pass = $_POST['contrasena'];

  $check = "SELECT count(*) AS A FROM usuarios WHERE usuario = '" . $user . "' AND contraseña = md5('" . $pass . "');";

  if($resultado = mysqli_query($conexion, $check)){ // IF QUERY IS TRUE

    $r = mysqli_fetch_array($resultado);

    echo $r['A'];

  }else{ // ELSE ECHO ERROR
      echo mysqli_error($con);
  }

}else{echo "Post is not set";}

答案 3 :(得分:0)

试试这个

$r = mysql_fetch_assoc($resultado);
echo $r['A'];