[英]php mysql insert/update field name show
我的数据库中有一个问题,我有一个php脚本来更新表或插入,并且我正在将它更改为“ showz”,即使它更改为“ showz”,它也具有更新表或插入的php脚本的功能! 我认为这是小故障,这里是php代码的一部分!
mysql_query("INSERT INTO db.table (mid, name, show) VALUES ('".$row['mid']."', '".$row['name']."', '".$row['show']."') ON DUPLICATE KEY UPDATE name = '".$row['name']."', show = '".$row['show']."'");
我试图将显示内容放在'show', show
,“ show”中,没有任何帮助!
那是因为show
是保留字(例如insert
, update
, order
等)。 您可以在此处阅读有关保留字的信息: MySQL保留字
为了使用保留字作为字段名,您需要使用反引号(`)对其进行转义,如下所示:
mysql_query("INSERT INTO db.table (mid, name, `show`) VALUES ('".$row['mid']."', '".$row['name']."', '".$row['show']."') ON DUPLICATE KEY UPDATE name = '".$row['name']."', `show` = '".$row['show']."'");
这告诉mysql将其视为字段,而不是以其保留字含义使用它。
我发现,最好总是使用反引号对表名和字段名进行转义,如下所示:
mysql_query("INSERT INTO `db`.`table` (`mid`, `name`, `show`) VALUES ('".$row['mid']."', '".$row['name']."', '".$row['show']."') ON DUPLICATE KEY UPDATE `name` = '".$row['name']."', `show` = '".$row['show']."'");
AS show是MySQL的保留字 ,如果将其用作表名或列名,则需要将其括在反引号(`)中
`show`
您正在使用保留关键字使用反引号
所以用像
`show`
宁可将反引号中的所有冒号都改掉是个好方法
mysql_query("INSERT INTO `db`.`table` (`mid`, `name`, `show`) VALUES ('".$row['mid']."', '".$row['name']."', '".$row['show']."') ON DUPLICATE KEY UPDATE `name` = '".$row['name']."', `show` = '".$row['show']."'");
注意
好读
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.