1

已解决:我在本地服务器上编写并测试了一个 PHP 脚本。(没什么花哨的,只是在同一个数据库中连续插入 2 个 SQL,但表不同)。

两台服务器都运行 PHP5 和 MYSQL 5。

在本地服务器上,两个查询都得到了正确处理。

在实时服务器上,只有第一个查询有效,而第二个查询无效,我不知道为什么。

这是代码:

    $sql_login = "INSERT INTO logintbl 
              (...) 
           VALUES (...)";
   $result_login = mysqli_query($this->connect, $sql_login);

   # Fill contact details
   $sql_contactD = "INSERT INTO contactDetails
                    (...)
         VALUES (...)";
   $result_contactD = mysqli_query($this->connect, $sql_contactD);

在我的本地服务器上,两个查询都返回 true,并且数据被添加到数据库中。

在我的实时服务器上,第一个查询按预期工作,但第二个查询失败,没有任何错误消息。

当然,两台服务器上的表结构是相同的。两个表都在同一个数据库中,并且用户对数据库具有足够的权限。

关于什么可能是错的任何线索?


编辑 1:权限:是的,用户对两个表都有足够的权限。


编辑 2:我感觉很傻,但是按照 James 关于检查 mysqli_error() 的建议,我发现生产服务器在表名方面是区分大小写的,这与我的测试服务器不同,并且它转换了我的原始名称表 (contactDetails) 转换为小写 (contactdetails)。

感谢大家的帮助。

4

3 回答 3

0

您是否检查过生产环境中的权限?意思是您是否已确认您具有对contactDetails 的插入访问权限?

于 2009-05-21T17:32:18.473 回答
0

您是否尝试将 $sql_contactD 打印到屏幕(或网页),然后在 MySQL 查询浏览器中运行完全相同的查询?

于 2009-05-21T18:59:54.940 回答
0

回答我自己的问题,因为它看起来是正确关闭它的唯一方法:

我感觉很傻,但是按照 James 关于检查 mysqli_error() 的建议,我发现生产服务器在表名方面是区分大小写的,这与我的测试服务器不同,并且它转换了我表的原始名称(contactDetails ) 转为小写(contactdetails)。

于 2010-06-10T08:54:55.480 回答