gpt4 book ai didi

mysql - 如果不存在insert into table mysql问题

转载 作者:搜寻专家 更新时间:2023-10-30 20:02:58 24 4
gpt4 key购买 nike

我正在尝试插入到我的表中,但前提是该信息尚不存在。

这个有效:

$sql = //"if not exists (select `id` from friends where `id` = :id) " . //ERROR!
"insert into `friends` (`id`, `fb_id`, `name`, `id2`, `fb_id2`, `name2`) " .
"values (:id, :fb_id, :name, :id2, :fb_id2, :name2)";
try
{
$stmt = $this->db->prepare($sql);
if (!$stmt)
{
$errorcode = (string)
$stmt->errorCode();
trigger_error("mysql errorcode : " . $errorcode, E_USER_ERROR);
$data = array( "note" => "mysql error code: " . $errorcode );

return json_encode( $data );
}
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->bindParam(':fb_id', $fb_id, PDO::PARAM_INT);
$stmt->bindParam(':name', $name, PDO::PARAM_STR);
$stmt->bindParam(':id2', $id2, PDO::PARAM_INT);
$stmt->bindParam(':fb_id2', $fb_id2, PDO::PARAM_INT);
$stmt->bindParam(':name2', $name2, PDO::PARAM_STR);
$result = $stmt->execute();
$stmt->closeCursor();
}
catch (Exception $e)
{
die ($e->getMessage() );
}

我尝试了 if not exists ( select id ... etc 作为第一行的commeted,但这没有用。它返回了错误代码 00000 (string) $stmt->errorCode();,我用谷歌搜索了一下,意思是:to many mysql connections,这不是问题,因为其他查询工作正常.

不存在的表如何插入,如何获取mysql错误信息?

最佳答案

我以前从未见过你的语法,在 insert 子句之前放置一个 exists 子句,但以下应该有效。

INSERT INTO `friends`
SELECT :id, :fp_id, :name, :id2, :fb_id2, :name2
FROM `friends`
WHERE NOT EXISTS ( select `id` from friends where `id` = :id )
LIMIT 1;

刚刚意识到,在此之前,您的 friend 表中至少需要一条记录。

关于mysql - 如果不存在insert into table mysql问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5780960/

24 4 0