嗨即时通讯寻找一种方式来实现一个条件,无论是在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); –