[英]mysqli_query() expects parameter 2 to be string
我收到错误
警告: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);
?>
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
}
如果您需要检查查询失败,这将起作用,否则即使您的查询返回 0 行,它也可能返回mysqli_result
,因此请注意。
代替 :
if (!mysqli_query($con,$sql))
和
if($sql === FALSE)
通过检查$sql
为 FALSE 来证明查询是否失败。
请参阅: mysqli_query()
尝试
<?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
试试这个代码:
$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 中传递了该对象。
$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));
}
试试这个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.