This question already has answers here:
How can I access an object attribute that starts with a number?
                                
                                    (2个答案)
                                
                        
                                上个月关闭。
            
                    
这是我的表格结构,

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_STRING)或变量(T_VARIABLE)或details.php中的'{'或'$'在第93行

最佳答案

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

另一方面,这不是在MySQL中指定以digit开头的字段的典型(合法)方式。与PHP类相同。因此,有几种解决方法:


8a更改为以字母开头的其他内容。
为MySQL结果集在PHP例程中指定数组而不是对象。
明确指定SELECT ..., 8a as v8a, ...
使用$table_results[0]->{'8a'};

10-07 12:33