重复键更新 sql 查询的正确格式是什么?看起来像是错别字或遗漏了什么
What is correct format for on duplicate key update sql query ? Looks like typo mistake or something missing
我需要进行重复键更新查询,看起来我的查询中缺少某些内容。
此查询在值中使用 # 时效果很好
$insertqry=qa_db_query_sub("INSERT INTO test_table (userid,title, price) VALUES (#,#,#)", $userid, $title, $price);
我需要添加 ON DUPLICATE KEY UPDATE。
此查询适用于重复更新,但我需要在值中添加 # 以使其 SQL 注入安全。
$insertqry = qa_db_query_sub("INSERT INTO test_table (userid,title,price) VALUES ('$userid','$title','$price') ON DUPLICATE KEY UPDATE title='$title', price='$price'");
我正在用 # in values 尝试这个,但似乎不起作用。
$insertqry = qa_db_query_sub("INSERT INTO test_table (userid,title,price) VALUES (#,#,#)",$userid, $title, $price); ON DUPLICATE KEY UPDATE title=#, price=#", $title, $price);
这里是更新数据库查询以匹配格式的参考。
https://github.com/q2a/question2answer/blob/dev/qa-include/db/post-update.php#L126
在你的情况下,我猜 userid 是主键或唯一键...
试试看
$insertqry=qa_db_query_sub("REPLACE INTO test_table (userid,title, price) VALUES (#,#,#)", $userid, $title, $price);
如果唯一键或主键已经存在,替换将自动删除第一条记录并插入新记录
编辑:
如果您仍想使用 ON DUPLICATE KEY
试试..
$insertqry=qa_db_query_sub("INSERT INTO test_table (userid,title, price) VALUES (#,#,#) ON DUPLICATE KEY UPDATE userid= VALUES(userid), title= VALUES(title), price=VALUES(price)", $userid, $title, $price)
我需要进行重复键更新查询,看起来我的查询中缺少某些内容。
此查询在值中使用 # 时效果很好
$insertqry=qa_db_query_sub("INSERT INTO test_table (userid,title, price) VALUES (#,#,#)", $userid, $title, $price);
我需要添加 ON DUPLICATE KEY UPDATE。
此查询适用于重复更新,但我需要在值中添加 # 以使其 SQL 注入安全。
$insertqry = qa_db_query_sub("INSERT INTO test_table (userid,title,price) VALUES ('$userid','$title','$price') ON DUPLICATE KEY UPDATE title='$title', price='$price'");
我正在用 # in values 尝试这个,但似乎不起作用。
$insertqry = qa_db_query_sub("INSERT INTO test_table (userid,title,price) VALUES (#,#,#)",$userid, $title, $price); ON DUPLICATE KEY UPDATE title=#, price=#", $title, $price);
这里是更新数据库查询以匹配格式的参考。 https://github.com/q2a/question2answer/blob/dev/qa-include/db/post-update.php#L126
在你的情况下,我猜 userid 是主键或唯一键... 试试看
$insertqry=qa_db_query_sub("REPLACE INTO test_table (userid,title, price) VALUES (#,#,#)", $userid, $title, $price);
如果唯一键或主键已经存在,替换将自动删除第一条记录并插入新记录
编辑: 如果您仍想使用 ON DUPLICATE KEY 试试..
$insertqry=qa_db_query_sub("INSERT INTO test_table (userid,title, price) VALUES (#,#,#) ON DUPLICATE KEY UPDATE userid= VALUES(userid), title= VALUES(title), price=VALUES(price)", $userid, $title, $price)