This question already has answers here:
How can I access an object attribute that starts with a number?
(2个答案)
上个月关闭。
这是我的表格结构,
我试图通过选择查询来获取数据,
我得到了结果,但是当我尝试访问“ 8a”列时,出现了错误。
错误:
[09-Dec-2019 16:38:20 UTC] PHP解析错误:语法错误,意外的'8'(T_LNUMBER),期望的标识符(T_STRING)或变量(T_VARIABLE)或details.php中的'{'或'$'在第93行
(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