mysqli_query()期望参数2为字符串 [英] mysqli_query() expects parameter 2 to be string
问题描述
我遇到了错误 警告:mysqli_query()期望参数2为字符串,第10行的C:\ Program Files(x86)\ EasyPHP-DevServer-13.1VC9 \ data \ localweb \ login.php中给出的对象 错误:
i am getting the error Warning: mysqli_query() expects parameter 2 to be string, object given in C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\login.php on line 10 Error:
执行查询
<?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
是对象,而不是字符串
if(!mysqli_query($con,$sql))
isn't good as $sql
is an object, not a string
$sql
是作为mysql_query
失败时返回FALSE.要成功执行SELECT,SHOW,DESCRIBE或 EXPLAIN查询mysqli_query()将返回mysqli_result对象.为了 其他成功的查询mysqli_query()将返回TRUE.
Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.
因此您不必执行其他mysqli_query
,只需按以下方式修改您的if
So you have not to do another mysqli_query
, just modify your if
in the following way
if(!$sql)
{
//do something
}
如果您需要检查查询失败,这将起作用,否则,即使您的查询返回了0行,它也可能返回mysqli_result
,因此请付款.
This will work if you need to check query failures, otherwise it could return a mysqli_result
even your query have returned 0 rows, so please pay attetion.
这篇关于mysqli_query()期望参数2为字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!