【问题标题】:Fatal error: Uncaught Error: Call to a member function fetch_object() on string致命错误:未捕获的错误:调用字符串上的成员函数 fetch_object()
【发布时间】:2016-10-01 12:05:35
【问题描述】:

当我们尝试从 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 新手,因此我们将不胜感激。

【问题讨论】:

  • $result = $conn-&gt;query('SELECT * FROM users WHERE username ="'.$_POST['username']).'"'; " 被连接到末尾的任何原因?您遇到该错误的原因是不言自明的:$result is a string
  • @ShaneOH 如果我们不把它放在 "" 中,它会认为它是一个列而不是一个值。
  • 您需要检查查询的错误if( !$result) die($mysql-&gt;error);
  • 你的查询的结尾 " 必须在 $conn->query 里面,而不是外面,你这里可能有一个 SQL 错误。你会得到什么?:$result = $conn-&gt;query('SELECT * FROM users WHERE username ="'.$_POST['username'].'"');

标签: php string mysqli fetch fatal-error


【解决方案1】:

看起来您在第 34 行最后一个 ) 的外部而不是内部有引号。

试试,例如:

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

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

【讨论】:

  • 感谢您的帮助!
【解决方案2】:

你已经创建了一个字符串。应该是这样的:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 2018-09-10
    • 2022-01-20
    • 1970-01-01
    • 2023-03-15
    • 2018-10-08
    相关资源
    最近更新 更多