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

Php MySQL表列名以数字开头在选择查询时产生错误,php,mysql,wordpress,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) NO

这是我的桌子结构

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解析错误:语法错误,意外的'8'(T_LNUMBER),需要标识符(T_字符串)或变量(T_变量)或详细信息中的'{'或'$'

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

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

  • 8a
    更改为以字母开头的其他内容

  • 在PHP例程中为MySQL结果集指定数组而不是对象

  • 明确指定
    SELECT…,8a为v8a…

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

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

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

  • 8a
    更改为以字母开头的其他内容

  • 在PHP例程中为MySQL结果集指定数组而不是对象

  • 明确指定
    SELECT…,8a为v8a…

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

  • 尝试变量解析

    $table_results[0]-> {8a};
    
    或者更好的方法是尝试重命名SELECT查询中的列名

    SELECT `8a` as eightA FROM wp_business;
    
    希望这有帮助!

    尝试变量解析

    $table_results[0]-> {8a};
    
    或者更好的方法是尝试重命名SELECT查询中的列名

    SELECT `8a` as eightA FROM wp_business;
    

    希望这有帮助!

    这里有一些解决方案已经为同一个问题提供了-

    这里有一些解决方案已经为同一个问题提供了-

    如果您将$table_results[0]['8a'放入最好给列指定特定的名称。这样,调试和跟踪什么做什么更容易。如果将$table_results[0]['8a']放入,得到的结果是什么最好给列指定特定的名称。这样,调试和跟踪什么做什么更容易。