我搞不清出了什么事。我的查询如下:
INSERT OR REPLACE INTO lang (name, string, lang) VALUES ('PAGE_TITLE', 'Page Title', 'en')
这就是我执行查询的地方:
foreach($lang_fields as $field){
$update = "INSERT OR REPLACE INTO lang (name, string, lang)
VALUES ('".mysqli_real_escape_string($conn, $field)."',
'".mysqli_real_escape_string($conn, $_POST[$field])."',
'".mysqli_real_escape_string($conn, $_POST['lang_load'])."')";
echo $update;
$sql = mysqli_query($conn, $update)
or die(mysqli_error($conn));
}
这就是错误:
您的SQL语法有错误;请检查与MySQL服务器版本对应的手册,以获得正确的语法,以便在“near”或“REPLACE in to lang(name,string,lang)”值中使用(“PAGE_TITLE”,“P”在第1行
最佳答案
MySQL不支持我见过的任何INSERT OR REPLACE INTO
语法。您可能正在寻找类似INSERT INTO ... ON DUPLICATE KEY UPDATE
的内容。在您的示例中,可能如下所示:
INSERT INTO myTable (name, string, lang) VALUES (param1, param2, param3)
ON DUPLICATE KEY UPDATE name = param1, string = param2, lang = param3;
更多信息可在以下文档中找到:https://dev.mysql.com/doc/refman/5.0/en/insert.html
使用这个SQL Fiddle可以找到一个这样的例子。