[英]JOIN table MySQL not joining in PHP
我正在嘗試學習如何使用JOIN
, INNER JOIN
, LEFT JOIN
和RIGHT JOIN
。 我有以下用戶和生成器表
users
uid
username
password
email
和
creator
id
uid
g_name
g_bio
但是我不能加入他們。 我嘗試這樣JOIN
:
public function Generator($uid) {
$g_name=mysql_real_escape_string($uid);
$query= mysql_query ("SELECT username,g_name,g_bio FROM users JOIN creator ON users.uid = creator.uid");
$data=mysql_fetch_array($query);
return $data;
}
但是print_r
什么都不顯示? 怎么了
首先,當您引用兩個表時,需要指定從哪個表中選擇每一列:
SELECT
users.username,
creator.g_name,
creator.g_bio
FROM users
JOIN creator ON users.uid = creator.uid
其次,在函數中,您傳入$uid
,然后將其轉換為$g_name
,但不在查詢中的任何地方使用它。 假設要使行與該值匹配,則需要添加其他where
條件:
WHERE creator.g_name = '$g_name'
最后, 不要使用mysql_*()
函數 ,而要使用mysqli或pdo並利用准備好的語句。
您將函數參數$ uid轉義為$ g_name,但未使用它。 可能是“什么都沒發生”的原因嗎? 您應該這樣重寫查詢:
"SELECT username,g_name,g_bio FROM users
JOIN creator ON users.uid = creator.uid
WHERE g_name = '$g_name'"
除此之外,我認為您最好使用PDO和參數化查詢
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.