Php 获取错误“;类mysqli的对象无法转换为字符串;
我是php新手。帮我解决这个问题。我已经尝试了网站上给出的所有解决方案。但它对我的代码不起作用Php 获取错误“;类mysqli的对象无法转换为字符串;,php,mysqli,Php,Mysqli,我是php新手。帮我解决这个问题。我已经尝试了网站上给出的所有解决方案。但它对我的代码不起作用 $query= "select * from login where username='$uname' and password= '$password'"; $result = mysqli_query("$query","$conn") or die(mysqli_error("$conn")); $row = mysqli_fetch_rows($result); if($row =
$query= "select * from login where username='$uname' and password= '$password'";
$result = mysqli_query("$query","$conn") or die(mysqli_error("$conn"));
$row = mysqli_fetch_rows($result);
if($row == 1)
{
$_SESSION['valid'] = $uname;
header("location: welcomeuser.php");
}
$conn
是一个对象。当您将变量放在引号中时
$result = mysqli_query("$query","$conn") or die(mysqli_error("$conn"));
它尝试将其转换为字符串,以便将其插入到带引号的字符串中。但这通常是无效的,除非类提供了转换方法;即使是这样,msyqli_query()
和mysqli_error()
也希望将对象作为它们的第一个参数,而不是字符串
应该是:
$result = mysqli_query($conn, $query) or die(mysqli_error($conn));
请注意,mysqli\u query()
的参数顺序错误
也不需要在$conn
周围加引号,因为它已经是一个字符串了
您还应该学会使用预先准备好的语句和参数,而不是将变量替换到SQL字符串中。不要在
$conn
@IncredibleHat这个问题如何可以用相同的标题提问?添加@Barmar所说的内容:不要放置变量(例如$query
)在字符串中,因为它们将尝试作为字符串而不是变量传递。您需要:$query=“从用户名=”的登录名中选择*”$联塞特派团。“'和密码='”$暗语"';"; $结果=mysqli_查询($query,$conn)或die(mysqli_错误($conn))
@incredible标题可能相同,但问题和解决方案完全不同。不要再考虑明显的sql注入漏洞,在$query周围加引号,以纯文本形式存储密码,以及。。。