CodeIgniter或PHP在表名前加“sq”,抛出错误

时间:2017-01-26 20:48:17

标签: php mysql codeigniter

在我的本地测试环境中,我使用POST数据向表上传信息没问题。我正在主机的服务器上对现场进行一些测试,并且在使用相同的技术时出现错误。

该表名为User_Information,我知道它通过检查phpMyAdmin而存在。它是使用脚本创建的。

这里简要介绍使用的代码,使用CodeIgniter框架将信息插入表中。这是一个摘要,并且可以肯定真正代码的语法很好:

['database' library is already autoloaded and connected]

$first = $this->input->post('firstname');
$last = $this->input->post('lastname');
$email = $this->input->post('email');
$city = $this->input->post('city');
$state = $this->input->post('state');

$insert = array(
                    'First_Name' => $first,
                    'Last_Name' => $last,
                    'Email' => $email,
                    'etc' => $etc,
                );

$this->db->insert('User_Information', $insert);

错误被抛出:

Error Number: 1146

Table 'myDatabase.sqUser_Information' doesn't exist

INSERT INTO `sqUser_Information` (`First_Name`, `Last_Name`, `Email`, `etc`) 
    VALUES ('Leonhard', 'Euler', 'Elias@euler.com', 'Select One')

Filename: models/Process_form.php

Line Number: 56

问题是为表名提交的值 - 从错误中看,它看起来正在寻找名为sqUser_Information的表而不是提供的User_Information }。我不知道'sq'来自哪里,或者为什么它会被放在我的桌子前面,我还没有能够在网上找到其他类似的情况。

我希望能够访问并将数据插入到我的表中,但由于传递了这个错误的名称,目前无法这样做。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

在Codeigniter中,您可以设置数据库表前缀。检查文件application/config/database.php并检查设置$db['default']['dbprefix']

只需删除该字段并确保其显示为

$db['default']['dbprefix'] = '';

您可以阅读有关codeigniter database configuration here的更多信息。

如果该字段已设置为空字符串,则可能在创建表时输错了该字符串。希望这会有所帮助。