嗨即時通訊尋找一種方式來實現一個條件,無論是在PHP或MySQL,只有在數據庫中存在'from_user_id'時,才能執行下面的mysql查詢嗎?只有當用戶存在於數據庫中時,mysql纔會插入到數據庫中?
我有一個名爲ptb_users的表,它存儲了所有的用戶ID,下面的查詢插入內容的另一個表是ptb_wallposts。
用戶可以在其他用戶的牆上寫字,但在用戶可以在用戶牆上寫入/在插入查詢運行之前,我希望條件與ptb_users交叉引用以確保發送消息的用戶/ from_user_id存在。所以如果用戶1登錄並想發送消息給用戶2s牆,那麼它首先檢查from_user_id是否與ptb_users中的user_id匹配。
因此,例如我不希望人們通過能夠具有0的from_user_id將數據注入到數據庫中,它必須與數據庫中的user_id或顯示和錯誤消息匹配。
有人可以請教我如何我可以做到這一點。謝謝。
我ptb_wallposts表看起來像這樣
id | from_user_id | to_user_id | content
1 2 3 hello
我ptb_users表看起來像這樣:
id | user_id |
1 2
MySQL查詢:
$sql = "INSERT INTO ptb_wallposts (id, from_user_id, to_user_id, content) VALUES (NULL, '".$_SESSION['user_id']."', '".$profile_id."', '".$content."');";
mysql_query($sql, $connection);
您可以首先'SELECT ... user',如果您沒有NULL值,請執行'INSERT'。 – zipser
首先,確保爲from_user_id,to_user_id創建一個外鍵給用戶的表,然後顯示一個友好的消息,你可以做一個選擇爲zipser – Akash
我將如何構建我的SELECT語句我試過這個:$ sql =「 SELECT user_id FROM ptb_users WHERE ptb_users.user_id = ptb_wallposts.from_user_id「; \t \t \t \t如果(!$ SQL) \t \t \t $ SQL2 = 「INSERT INTO ptb_wallposts(ID,from_user_id,to_user_id,內容)VALUES(NULL,「」。$ _ SESSION [ 'user_id的']'。「, '「。$ profile_id。」','「。$ content。」');「; \t \t \t mysql_query($ sql,$ connection); –