我是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 == 1)
{
$_SESSION['valid'] = $uname;
header("location: welcomeuser.php");
}
答案 0 :(得分:2)
$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_query()
参数的顺序错误。
也没有必要在$conn
附近加上引号,因为它已经是一个字符串。
您还应学会使用预准备语句和参数,而不是将变量替换为SQL字符串。