0

我收到错误

警告:mysqli_query() 期望参数 2 为字符串,对象在 C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\login.php 第 10 行给出错误:

在执行查询时

<?php
$con=mysqli_connect("127.0.0.1","root","","forms");
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
  
  $sql=mysqli_query($con,"SELECT * FROM register Where username='$_POST[username]' AND password='$_POST[password]'");
  
  if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "login success";

mysqli_close($con);
?>
4

5 回答 5

2

if(!mysqli_query($con,$sql))不如$sql一个对象好,而不是一个字符串

$sql是一个对象mysql_query

失败时返回 FALSE。对于成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询,mysqli_query() 将返回一个 mysqli_result 对象。对于其他成功的查询,mysqli_query() 将返回 TRUE。

所以你不必做另一个,只需按以下方式mysqli_query修改你的if

if(!$sql)
{
  //do something
}

如果您需要检查查询失败,这将起作用,否则mysqli_result即使您的查询返回 0 行,它也可能返回,所以请注意。

于 2013-06-06T07:08:06.250 回答
0

代替 :

if (!mysqli_query($con,$sql))

if($sql === FALSE)

通过检查$sqlis FALSE 来证明查询是否失败。

请参阅:mysqli_query()

于 2013-06-06T07:10:03.830 回答
0

尝试

  <?php
      $con=mysqli_connect("127.0.0.1","root","","forms");
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

  $sql="SELECT * FROM register Where username='$_POST[username]' AND password='$_POST[password]'";

  if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "login success";

mysqli_close($con);
?>

因为可以执行查询,所以应该是字符串。但是在你的代码中

$sql=mysqli_query()

返回一个对象到 $sql

于 2013-06-06T07:10:21.487 回答
-1

试试这个代码:

  $sql="SELECT * FROM register Where username='".$_POST[username]."' AND password='."$_POST[password]."'";

  if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }

在您的代码中,您已经使用了 mysqli_query,并且您再次在 mysqli_query 中传递了该对象。

于 2013-06-06T07:11:08.353 回答
-1
$sql = 'SELECT * FROM register Where username=\'' . $_POST[username]. '\' AND password=\''. $_POST[password].'\' ';
$response=mysqli_query($con, $sql);
if (empty( $response ))
{
    die('Error: ' . mysqli_error($con));
}

尝试这个。

于 2013-06-06T07:21:27.047 回答