我有我的SQL查询:
哎呀,你是对的。这是整个代码:
<?php
//variables here
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO Results (...)
VALUES (...)
ON DUPLICATE KEY UPDATE (...)";
if ($conn->query($sql) === TRUE) {
echo "Saved.";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
如何显示消息&#34;成功&#34;当插入数据或消息&#34;更新&#34;什么时候更新数据?
答案 0 :(得分:1)
根据manual,您可以检测是否插入了行或是否修改了行:
如果ON DUPLICATE KEY UPDATE,则每行的受影响行值为1 该行将作为新行插入,如果更新现有行,则为2 如果现有行设置为其当前值,则为0。
我已经在PDO中成功使用了它,但我无法确认它是否也适用于msyqli。我很确定会这样。
所以你必须检查$conn->affected_rows
的返回值:
if ($conn->query($sql) === TRUE) {
if ($conn->affected_rows === 1) {
// new row inserted
} else {
// row found and possibly modified, you can filter for 0 or 2
// if you need more details.
}
} else {
...