[英]i made a php file that let people follow each other
我制作了這個 PHP 頁面,讓人們互相關注它從表 users 中獲取以下用戶 ID,當登錄用戶按下關注時,操作應保存在關注者表中。
followers table
id int
user_id int
follower-id int
users table
email varchar
id int
username varchar
password varchar
我收到此錯誤
:致命錯誤:未捕獲的異常“PDOException”,消息為“SQLSTATE[42S22]:未找到列:1054 C:\\socialnetwork\\classes\\DB.php:12 中的“字段列表”中的未知列“follower”:12 堆棧跟蹤:# 0 C:socialnetwork\\classes\\DB.php(12): PDOStatement->execute(Array) #1 C:\\Users\\Karim\\Desktop\\socialnetwork\\profile.php(17): DB::query('SELECT follower. ..', Array) #2 {main} 在第 12 行的 C:socialnetwork\\classes\\DB.php 中拋出
感謝您的時間。
<?php
include('./classes/DB.php');
include('./classes/Login.php');
$username = "";
if (isset($_GET['username'])) {
if (DB::query('SELECT username FROM users WHERE username=:username', array(':username'=>$_GET['username']))) {
$username = DB::query('SELECT username FROM users WHERE username=:username', array(':username'=>$_GET['username']))[0]['username'];
if (isset($_POST['follow'])) {
$userid = DB::query('SELECT id FROM users WHERE username=:username', array(':username'=>$_GET['username']))[0]['id'];
$followerid = Login::isLoggedIn();
if (!DB::query('SELECT follower-id FROM `followers` WHERE user_id=:user_id', array(':user_id'=>$userid))) {
DB::query('INSERT INTO followers VALUES (null, :user_id, :follower-id)', array(':user_id'=>$userid, ':follower-id'=>(int)$followerid));
} else {
echo 'Already following!';
}
}
} else {
die('User not found!');
}
}
?>
<h1><?php echo $username; ?>'s Profile</h1>
<form action="profile.php?username=<?php echo $username; ?>" method="post">
<input type="submit" name="follow" value="Follow">
</form>
即使不允許使用連字符,也可能會導致列名出現問題。
為了使其工作,您必須用反引號括起列的名稱:
SELECT `follower-id` FROM
正如 MySQL 文檔所確認的那樣:
不帶引號的標識符中允許的字符:
ASCII: [0-9,az,AZ$_](基本拉丁字母、數字 0-9、美元、下划線)
擴展:U+0080 .. U+FFFF
帶引號的標識符中允許的字符包括完整的 Unicode 基本多語言平面 (BMP),但 U+0000 除外:
ASCII: U+0001 .. U+007F
擴展:U+0080 .. U+FFFF
破折號的 ASCII 碼-
是 45,在“帶引號的標識符”ASCII 范圍內
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.