![](/img/trans.png)
[英]How to pull data from table1's ID and place it into table2's FOREIGN KEY via PHP
[英]Getting table2 Info from foreign key in table1
什么查詢可以使用table1具有的外鍵來獲取table1&table2的全部數據?
我進了table1
用戶名密碼person_id(外鍵)
在表2中
ID名稱姓氏地址
我需要一個查詢
SELECT * FROM table1, table2
WHERE table1.username='$var' && table1.password = '$var'
&& "table1.person_id = table2.id"
(這是我不知道的部分)〜而且我知道這是一個非常不安全的查詢
對不起,我使用mysqli函數和東西的菜鳥問題
您正在尋找的是JOIN
,特別是INNER JOIN
。 JOIN
作用是根據某些條件將記錄從一個表匹配到另一個表。 所以你想要的是
SELECT
*
FROM
table1
INNER JOIN table2 ON table1.person_id = table2.id
WHERE
table1.username='$var'
AND table1.password = '$var';
查看此站點以獲取有關聯接的說明。
您將過多的PHP與SQL混合在一起,並且查詢對聯接使用了過時的語法
您希望查詢看起來像這樣
"SELECT *
FROM table1, table2
JOIN table2 ON table1.person_id = table2.id
WHERE table1.username='$var'
AND table1.password = '$var'"
由於您已將其標記為mysqli,因此,如果要將其與mysqli連接一起使用,則將使用以下內容連接到數據庫:
$dbc = new mysqli($host, $username, $password, $dbname);
if ($dbc->connect_error) {
die("Connection failed: " . $dbc->connect_error);
}
$query = "SELECT *
FROM table1, table2
JOIN table2 ON table1.person_id = table2.id
WHERE table1.username='$var'
AND table1.password = '$var'";
然后這樣稱呼它
$dbc->query($query);
您可能會通過POST
(來自表單)或GET
變量來GET
變量。
例:
$var = $_POST['var'];
其中var
是HTML表單中的命名輸入字段,例如
<input type="text" name="var" />
當然,這僅僅是一個開始。 我希望我不要回答太多。
編輯:注意,如果您希望以更安全的方式執行此操作,以下是使用准備好的語句執行相同查詢(使其成為兩個變量)的方法:
$query = $dbc->("SELECT col1, col2
FROM table1, table2
JOIN table2 ON table1.person_id = table2.id
WHERE table1.username=?
AND table1.password = ?");
$query->bind_param("ss",$var1,$var2);
$query->execute();
然后您可以從選擇中調用這些項並將它們綁定到變量中,如下所示:
$query->bind_results($col1, $col2);
然后關閉查詢
$query->close();
注意bind_param
的"ss"
表示兩個變量都是字符串。 如果是整數,請使用i
(當然我會繼續一點):
要調用這些變量,您可以做
while ($query->fetch()) {
echo $col1;
echo $col2;
}
但我離題了...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.