如果数据库不存在,则如何插入行?如果存在,则更新吗?
我正在尝试以下操作:

$stmt = $conn->prepare('INSERT INTO customer_info (user_id, fname, lname) VALUES(:user_id, :fname, :lname)
    ON DUPLICATE KEY UPDATE fname= :fname2, lname= :lname2');

$stmt->bindParam(':user_id', $user_id);
$stmt->bindParam(':fname', $_POST['fname'], PDO::PARAM_STR);
$stmt->bindParam(':lname', $_POST['lname'], PDO::PARAM_STR);
$stmt->bindParam(':fname2', $_POST['fname'], PDO::PARAM_STR);
$stmt->bindParam(':lname2', $_POST['lname'], PDO::PARAM_STR);

它给出以下错误:
[Sybase][ODBC驱动程序][SQL Anywhere]第1行“on”附近出现语法错误
是不是兼容性问题?
我该怎么做?

最佳答案

在insert语句中添加ON EXISTING UPDATE,例如:

INSERT INTO customer_info (user_id,fname,lname) ON EXISTING UPDATE VALUES(Value1,Value2,Value3);

关于php - 在Sybase SQLAnywhere中插入或更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48987177/

10-12 21:24