致命错误:未捕获错误:在字符串上调用成员函数fetch_object()

时间:2016-06-01 23:08:36

标签: php string mysqli fetch fatal-error

当我们尝试从SQL数据库获取用户名时,我们当前遇到了问题。这是我们的查询代码和fetch_object()

<?php  

$user = 'root';
$password = 'root';
$db = 'collabowrite';
$host = 'localhost';
$port = 3306;
$conn = new mysqli($host, $user, $password, $db);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
// $link = mysqli_init();
// $success = mysqli_real_connect(
//    $link, 
//    $host, 
//    $user, 
//    $password, 
//    $db,
//    $port
// );

//$sql='SELECT * FROM users WHERE username ='.$_GET['username'];



$result = $conn->query('SELECT * FROM users WHERE username ="'.$_POST['username']).'"';
if(!$result){
    die($conn->error);  
}
$userids = array();

while ($row = $result->fetch_object()){
    $userids[] = $row->id;
}


echo $userids[0];

$conn->close();

?>

当我们运行时,我们得到错误:

Fatal error: Uncaught Error: Call to a member function fetch_object() on string in /Users/brianleaf/Google Drive/htdocs/login.php:34 Stack trace: #0 {main} thrown in /Users/brianleaf/Google Drive/htdocs/login.php on line 34

我们是PHP的新手,所以任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

看起来你在第34行的最后)的外面而不是内部引用了引用。

尝试,例如:

$sql='SELECT * FROM users WHERE username ="'.$_POST['username'].'"';
$result = $conn->query($sql);

$result = $conn->query('SELECT * FROM users WHERE username ="'.$_POST['username'].'"');

答案 1 :(得分:1)

您已创建了一个字符串。这是应该的方式:

$result = $conn->query('SELECT * FROM users WHERE username="' . $_POST['username'] . '"');