问题描述
在升级旧代码时,我偶然发现了一个数据库的恐怖之处,该数据库的列名很奇怪,其中包括逗号和引号。由于其他情况,我无法重命名这些列,因此我必须找到一种解决方法。
这样的列看起来像
CREATE TABLE `file` (
`id` int(12) NOT NULL,`number,street,city,sector` text,`client\'s_mobile` text
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
使用过时的 MySQL 函数的旧PHP代码似乎对这些列使用反引号(`)包围起来似乎没有问题。
现在,当使用Codeigniter 4的模型时,事情再也不会那么顺利了。当尝试获取client\'s_mobile
列时,我这样做:
$fileModel = new \App\Models\FileModel();
$file = $fileModel->select('`client\'s_mobile`')->where('id',$id)->first();
它可以工作,但是当我用逗号将其替换时,它不会:
$file = $fileModel->select('`number,sector`')->where('id',$id)->first();
我得到一个例外说明
Unknown column 'street' in 'field list'
由于里面的逗号,它像4列一样读取整个列。 如何在可能的情况下指定仅此一列?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)