当我们尝试从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的新手,所以任何帮助将不胜感激。
答案 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'] . '"');