一些教程中的示例查询始终以:
结束or die(mysql_error());
我可以理解为什么你有时会想要这样做,但他们甚至将它用于真正不应该导致问题的查询。总是使用它是一个好习惯,还是只是在你学习的时候帮助你进行调试?
答案 0 :(得分:13)
不惜一切代价避免!
mysql_error
可能会泄露您不希望提供的信息想象一下交易数据库 - 您的客户汇款,因此您必须修改两个表(两个查询)。
第一个将资金从X转移到Y并成功。 第二个必须从X 失败中减去Y.
您无法还原事务,并且不会记录错误。有效地让用户Y快乐,X留下混淆钱的地方......
对查询使用合理的错误处理 - 创建一个可以为您处理或使用ORM的类。
答案 1 :(得分:1)
这取决于你的意思“不应该是一个问题”。
如果您的意思是“它不会失败”,如果数据库服务器脱机会发生什么?
只有当你的意思是“它是否失败并不重要时,脚本可以继续运行而没有问题”,你应该考虑不在那里or die
。
答案 2 :(得分:0)
“不应该”这个词在这里很糟糕。不应该有问题的查询仍然会受到外部因素的影响,例如:与数据库连接的连接。
答案 3 :(得分:0)
但他们甚至将此用于真正不应导致问题的查询
如果Web服务器和数据库服务器之间的网络崩溃,即使是最简单的SELECT * FROM FOO
也会导致问题。这是一种很好的做法,因为在处理数据库等外部系统时,你真的不能认为某些东西是“安全的”。
在生产代码中,您可能不希望使用die()
来处理错误 - 您也许可以运行一些自定义代码来处理错误。无论如何,你绝对应该以这种或那种方式处理错误,而die()
是一种很好的开始方式。
答案 4 :(得分:0)
您不一定需要
or die()
但应该拥有某种错误处理系统。如果你还没有,我会将它添加到我的查询中,即使是简单的查询。
编辑:澄清一下,“它”是指or或die()语句。
答案 5 :(得分:0)
我认为将数据库连接信息用于页面顶部不会有任何损害,只在尝试连接数据库时使用它。
但为什么我们会在你执行的每个查询中使用它!显然,如果它连接到数据库,那么如果你知道没有其他错误应该发生,那么我不明白为什么你不能避免使用它超过每页一次!!!