即使使用了select查询,我仍然会使用相同的名称插入多行。
以下是我遇到上述问题的类似代码示例。
$current_timestamp=date('Y-m-d H:i:s'); //current date-time
$query = "SELECT * FROM table WHERE name = 'variable name' ";
$result=try_mysql_query($link, $query);
if(mysqli_num_rows($result))
{
$updatequery = "UPDATE account_extension SET
updated_at = '$current_timestamp' WHERE name = 'variable name'";
$result = try_mysql_query($link, $updatequery);
}
else
{
$insertsql="INSERT INTO table(`name`,`updated_at`)
VALUES ('variable name','$current_timestamp')";
$result = try_mysql_query($link,$insertsql);
}
答案 0 :(得分:0)
在MySQL中执行此操作的正确方法是单个语句。
首先,您需要一个唯一的索引:
create unique index ind_ account_extension_name on account_extension(name);
然后,你可以这样做:
insert into account_extension(name, updated_at)
values (?, ?)
on duplicate key update updated_at = values(updated_at);
请注意,我还用参数占位符替换了变量。使用参数是将值传递给查询的正确方法。
这种方法的优点是什么?
name
的唯一性都得到保证。答案 1 :(得分:-1)
更新代码中的以下行:
<div id="vue-app">
<!-- ...... -->
<% for (var i = 0; i < data.length; i++) { %>
<li><%= data[i].id %></li>
<send-bv></send-bv>
<% } %>
<!-- ...... -->
</div>
使用
$query = "SELECT * FROM table WHERE name = 'variable name' ";
希望这有帮助