php - 以数字开头的MySQL表列名在选择查询时产生错误

标签 php mysql wordpress

<分区>

这是我的表结构,

CREATE TABLE `wp_business` (
  `id` int(11) NOT NULL,
  `8a` varchar(100) NOT NULL,
  `address_1` varchar(1000) NOT NULL,
  `city` varchar(250) NOT NULL,
  `state` varchar(250) NOT NULL,
  `zip_code` int(11) NOT NULL,
  `tel` varchar(100) NOT NULL,
  `fax` varchar(100) NOT NULL,
  `email` varchar(1000) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

我试图通过选择查询获取数据,

SELECT * FROM wp_business;

我得到了结果,但是当我尝试访问“8a”列时,出现错误。

$table_results[0]->8a;

错误:

[09-Dec-2019 16:38:20 UTC] PHP Parse error: syntax error, unexpected '8' (T_LNUMBER), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in details.php on line 93

最佳答案

您无法按照您尝试的方式在 PHP 中获取类对象的字段(变量)名称“8a”。

另一方面,这不是在 MySQL 中指定以数字开头的字段的典型(但合法)方式。与 PHP 类相同。因此,有几种替代方法可以修复:

  1. 8a 更改为其他以字母开头的内容。

  2. 在 MySQL 结果集的 PHP 例程中指定数组而不是对象。

  3. 明确指定 SELECT ..., 8a as v8a, ...

  4. 使用$table_results[0]->{'8a'};

关于php - 以数字开头的MySQL表列名在选择查询时产生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59253544/

相关文章:

mysql - Liquibase 添加默认值

mysql - 非活跃客户mysql查询优化

php - 列出没有短代码的 WooCommerce 畅销产品

php - 强制 WordPress 页面刷新

mysql - 通过 MySQL 查询批量操作 : render all posts in category private

php - 保留 ajax 控件的文件上传

php - 登录后获取用户id

MYSQL 按不为空的字段分组

php - "conventional"处理上传图片名称的方式是什么?

java - 亚马逊 AWS 是否提供与 facebook/twitter 和 google 相同的开放身份验证