1

我为本地主机上的数据库设计了一个简单的 Web 界面。在本地主机上,如果我尝试发送 SQL 命令来创建记录,并在其中一个字段中使用了无效的 FK,那么 PHPmysql_query返回 false,我让我的 PHP 脚本返回mysql_error()当然包含有关 FK 的一些信息我试图违反。

我将整个项目移至我拥有的 HostGator 帐户,并使用完全相同的 SQL 设置脚本创建了数据库表。但是,当我在这里尝试违反 FK 时,mysql_query返回 true,因此我的 PHP 脚本就像请求成功一样,当然它没有。

在这两种情况下,都没有将任何内容插入数据库,但由于某种原因,在后一种情况下mysql_query返回 true。同样在后一种情况下mysql_error()显得空,即使很明显我犯了一个错误。

是否有服务器设置可以控制这个?

谢谢!

编辑:

类似的问题,在远程服务器上,我可以删除具有 FK 依赖项的记录。似乎 hostgator 版本根本没有强制执行参照完整性。:-(

4

1 回答 1

1

正如上面评论中所发布的,这里正确的解决方案是强制我的引擎使用 InnoDB。

于 2012-06-04T23:07:18.963 回答