繁体   English   中英

PHP的MySQL的插入/更新字段名称显示

[英]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是保留字(例如insertupdateorder等)。 您可以在此处阅读有关保留字的信息: 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`

您正在使用保留关键字使用反引号

表9.2。 MySQL 5.0.96中的保留字

在此处输入图片说明

所以用像

`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']."'");

注意

  1. 整个ext/mysql PHP扩展(提供所有带有前缀mysql_的功能)已从PHP v5.5.0开始正式弃用,以后将被删除。 因此,请使用PDOMySQLi

好读

  1. mysql扩展名已弃用,以后将被删除:改用mysqli或PDO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM