在重复键更新时使用插入...更新插入
Upsert using insert... on duplicate key update
那里有很多教程,但我无法以某种方式使它起作用。
如果除列外的所有数据与我通过表单插入的数据相匹配,我正在尝试更新我的 table。我使用 php 作为脚本语言,在后端使用 mysql。
$name = $_POST['name'];
$phone = $_POST['phone'];
$genders = $_POST['gender'];
$hno = $_POST['hno'];
$sector = $_POST['sector'];
$city = $_POST['city'];
$state = $_POST['state'];
$pin = $_POST['pin'];
$ailt = $_POST['ailt'];
$q="INSERT INTO manage (name, phone, gender, hno, sector, city, state, pin, ailt)
VALUES ('$name', '$phone', '$genders', '$hno', '$sector','$city','$state','$pin','$ailt')
ON DUPLICATE KEY UPDATE ailt='$ailt'";
我想做的是插入数据(如果尚不存在),或者如果 ailt
以外的所有字段都匹配,则用新的 ailt
更新该行。
我已经被困在这个问题上几个小时了。看起来很简单,但我无法让它工作,因为行不断插入。它们不会更新,即使我保持所有数据相同并为 ailt 设置不同的值。
鉴于评论充斥着SQL注入,我不会再碰它了。
您要查找的语法是 UPDATE ailt=VALUES(ailt)
。
有关详细信息,请参阅 the docs 中以 "You can use the VALUES(col_name) function" 开头的段落。
编辑:关于您对行 "keep inserting" 的评论,这可能是因为您在数据库上没有可以识别要更新的行的 PRIMARY 或 UNIQUE 键。请参阅我上面链接的文档的第一段以获取更多参考。
那里有很多教程,但我无法以某种方式使它起作用。
如果除列外的所有数据与我通过表单插入的数据相匹配,我正在尝试更新我的 table。我使用 php 作为脚本语言,在后端使用 mysql。
$name = $_POST['name'];
$phone = $_POST['phone'];
$genders = $_POST['gender'];
$hno = $_POST['hno'];
$sector = $_POST['sector'];
$city = $_POST['city'];
$state = $_POST['state'];
$pin = $_POST['pin'];
$ailt = $_POST['ailt'];
$q="INSERT INTO manage (name, phone, gender, hno, sector, city, state, pin, ailt)
VALUES ('$name', '$phone', '$genders', '$hno', '$sector','$city','$state','$pin','$ailt')
ON DUPLICATE KEY UPDATE ailt='$ailt'";
我想做的是插入数据(如果尚不存在),或者如果 ailt
以外的所有字段都匹配,则用新的 ailt
更新该行。
我已经被困在这个问题上几个小时了。看起来很简单,但我无法让它工作,因为行不断插入。它们不会更新,即使我保持所有数据相同并为 ailt 设置不同的值。
鉴于评论充斥着SQL注入,我不会再碰它了。
您要查找的语法是 UPDATE ailt=VALUES(ailt)
。
有关详细信息,请参阅 the docs 中以 "You can use the VALUES(col_name) function" 开头的段落。
编辑:关于您对行 "keep inserting" 的评论,这可能是因为您在数据库上没有可以识别要更新的行的 PRIMARY 或 UNIQUE 键。请参阅我上面链接的文档的第一段以获取更多参考。