在我的本地测试环境中,我使用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'来自哪里,或者为什么它会被放在我的桌子前面,我还没有能够在网上找到其他类似的情况。
我希望能够访问并将数据插入到我的表中,但由于传递了这个错误的名称,目前无法这样做。
有什么建议吗?
答案 0 :(得分:1)
在Codeigniter中,您可以设置数据库表前缀。检查文件application/config/database.php
并检查设置$db['default']['dbprefix']
只需删除该字段并确保其显示为
$db['default']['dbprefix'] = '';
您可以阅读有关codeigniter database configuration here的更多信息。
如果该字段已设置为空字符串,则可能在创建表时输错了该字符串。希望这会有所帮助。