小编But*_*Dog的帖子

使用ON DUPLICATE KEY准备好的声明

我觉得这个应该很简单,但我很难做到正确.我已经搜索了一些但是对准备好的语句不熟悉我无法通过查看我在这里和其他地方找到的其他示例来弄清楚语法.无论如何这是我的代码.

if($stmt = $mysqli -> prepare("INSERT INTO user_info (city, state, website, public_contact, user, zipcode, pic, emailme) VALUES (?, ?, ?, ?, ?, ?, ?,?) 
    ON DUPLICATE KEY UPDATE (city, state, website, public_contact, user, zipcode, pic, emailme) VALUES (?, ?, ?, ?, ?, ?, ?,?)")) {
    $stmt -> bind_param("sssssssi",$city, $state, $website, $public_contact, $user, $zipcode, $pic, $emailme);
    $stmt -> execute();
    $stmt -> bind_result($result);
    $stmt -> close();
}
Run Code Online (Sandbox Code Playgroud)

用户是唯一的.这个IMO只是一个语法问题,所以有人可以用正确的语法帮助我吗?非常感激.

ETA:只是为了帮助解决问题,当我删除ON DUPLICATE KEY UPDATE部分时,这确实有效,但显然,它只允许每个用户一条记录而不会更新

更新:从来没有找到一个工作语法来使用ON DUPLICATE KEY UPDATE,所以我所做的(确实可能不是最有效的方式)是为用户检查表.如果用户存在,我运行并更新,如果不存在,我运行INSERT.以下是我的工作代码.希望这能帮助那些陷入困境的人.

 $sql = "SELECT * FROM user_info …
Run Code Online (Sandbox Code Playgroud)

php mysql

12
推荐指数
1
解决办法
8421
查看次数

标签 统计

mysql ×1

php ×1