我收到错误 警告:mysqli_query()要求参数2为字符串,对象在第10行的C:\ Program Files(x86)\ EasyPHP-DevServer-13.1VC9 \ data \ localweb \ login.php中给出 错误:
执行查询
<?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);
?>
答案 0 :(得分: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
}
如果您需要检查查询失败,这将有效,否则即使您的查询返回0行也可以返回mysqli_result
,所以请注意。
答案 1 :(得分:0)
答案 2 :(得分: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
的对象答案 3 :(得分:0)
试试这段代码:
$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中传递了该对象。
答案 4 :(得分:0)
$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));
}
试试这个。