Php 更新MySQL中的整行
我是MySQL新手,我想用新数组更新MySQL中的整行,到目前为止,所有更新查询的示例都涉及到为该列指定列名和新值,如下所示:Php 更新MySQL中的整行,php,mysql,Php,Mysql,我是MySQL新手,我想用新数组更新MySQL中的整行,到目前为止,所有更新查询的示例都涉及到为该列指定列名和新值,如下所示: "UPDATE tablename SET columnname = '".$new_value."' WHERE columnname = '".$value."'"; 如何使用更新查询更新整个记录,还是使用替换查询 如有任何建议,将不胜感激 编辑:是否存在不需要指定所有列名和新列值的查询 基本上,我希望有一个如下所示的查询: "UPDATE tablename S
"UPDATE tablename SET columnname = '".$new_value."' WHERE columnname = '".$value."'";
如何使用更新查询更新整个记录,还是使用替换查询
如有任何建议,将不胜感激
编辑:是否存在不需要指定所有列名和新列值的查询
基本上,我希望有一个如下所示的查询:
"UPDATE tablename SET columnname = '".$new_value."' WHERE columnname = '".$value."'";
使用此数组更新entirerow,其中primarykeycolumn='thisvalue'要执行此操作,您需要
UPDATE tablename
SET col1 = 'val1', col2 = 'val2' ...
WHERE id = id_value
除了上面显示的我之外,没有任何神奇的命令可以更新sql中的“整行”。而
REPLACE
肯定不是您在这里需要的。这取决于您是否想保留ID,假设ID是自动递增的
REPLACE INTO mytable VALUES(新数组)…
也会更新ID,因为它实际上只是模拟了DELETE
和INSERT
如果要保留ID,请使用updatemytable SET foo='bar',baz='bat',其中ID=12
仅供参考,REPLACE
通常很方便映射表,其中唯一字段或复合主键不是自动递增的。您当然可以在一个查询中完成所有操作。只需添加更多由逗号分隔的this=that子句:
"UPDATE tablename
SET column1name = '".$new_value1."',
column2name = '".$new_value2."',
column3name = '".$new_value3."'
WHERE columnname = '".$value."'"
这是正确的方法
UPDATE TABLENAME SET COLUMNAME = VALUE, COLUMN2NAME = VALUE, ETC WHERE CONDITION
是的,有一个相似的方法
$updateSQL = sprintf("UPDATE hotel <br>SET hotel_name=%s, contact_person_1=%s <br>WHERE hotel_id=%s",<br>
$_POST['hotel_name'],<br>
$_POST['contact_person_1'],<br>
$_POST['hotel_id']);
mysql_select_db($database_hotelbookingryan, $hotelbookingryan);
$Result1 = mysql_query($updateSQL, $hotelbookingryan) or die(mysql_error());
$updateSQL=sprintf(“更新酒店
设置酒店名称=%s,联系人=%s
酒店id=%s所在地,
$\u POST[“酒店名称”],
$\u POST['contact\u person\u 1',
$_POST['hotel_id']);
mysql\u select\u db($database\u hotelbookingryan,$hotelbookingryan);
$Result1=mysql\u query($updateSQL,$hotelbookingryan)或die(mysql\u error());
而且当有外键指向此表时(特别是定义了删除级联上的操作),使用REPLACE
也不好。是的,很遗憾id是自动递增的,我需要保留这些OK谢谢,那个么我想我应该停止偷懒,开始输入那个些列。除非你想让他成为博士后,否则你根本不需要提及:)@AlienWebguy:不想让任何人成为博士后。MySQL允许在WHERE
子句中使用这种语法:WHERE(a,b)=(2,3)
在MySQL(以及一般的SQL)中有效。但是它还没有在SET
子句中实现。@ypercube你和zerkms是同一个人吗?我知道语法:)@ypercube为什么要在别人的答案中添加代码段?看起来很奇怪也不合适。谢谢你的回答,我只希望他们的问题能简短一些*/