获取错误“类mysqli的对象无法转换为字符串。”

时间:2018-02-23 21:15:12

标签: 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 == 1)
{

    $_SESSION['valid'] = $uname;

    header("location: welcomeuser.php");    
}

1 个答案:

答案 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字符串。