"INSERT INTO friend(`uId`,`friendId`) VALUES (?,?)
WHERE NOT EXISTS (SELECT uId,friendId FROM friend WHERE uId=? && friendId=?)"

stmt->bind_param('ssss',$uId,$friendId,$uId,friendId);

我的sql是否正确?我想检查是否存在不存在的记录,如果不存在,只插入其中。
i gt此错误:致命错误:调用非对象i上的成员函数bind_param()

最佳答案

我不知道数据是什么样子的,但你可以这样插入…

INSERT INTO friend_One (`uId`,`friendId`)
SELECT f.uId,f.friendId
FROM friend f
WHERE NOT EXISTS (SELECT 1
                  FROM  friend_One
                  WHERE uId= f.Uid
                  AND friendId= f.friendId)

通常,为记录的存在而检查的表与选择的表不同。在这里,这个问题并没有多大意义。但我想这只是一个演示查询。

10-05 21:08