2014-10-09 18 views
-2

为什么不正常的的mysql_query或后做一个回声?的mysql_query或(为什么没有在这里回声?)

所以mysql_query or die ("error")是合法的,但为什么mysql_query or echo ("error")不是?

是否有任何其他可能性在不退出整个下面的代码的情况下打印文本(或者填充变量)?

+2

1.不使用mysql,但使用mysqli或pdo 2.需要打印哪种文本?你不能在死前或死亡之前打印它? – trainoasis 2014-10-09 13:22:19

+0

小心OR语句。请记住,你应该检查,而如果查询完成,而不是给它一个机会,不这样做(也避免mysql_ *,因为它是不建议使用) – briosheje 2014-10-09 13:23:28

回答

2

or内,您可以使用; die("error")print("error")。如果你做了如下的事情会更好,因为它可以让你;

  • 登录错误
  • 报告错误给您的开发
  • 适当地杀死页面(可能重定向到一个页面建立处理状态代码500)

$obj = mysql_query("select * from table", $link); 
if(mysql_error($link)) { 
    echo "Error"; 
    //Log the error? 
    die; 
} 

请注意;

的mysql_扩展弃用为PHP 5.5.0,并且不建议用于编写新的代码,因为它会在将来被移除。相反,应使用mysqliPDO_MySQL扩展名。请参阅MySQL API Overview以获得进一步帮助,同时选择MySQL API。

+0

通常从MySQL错误记录在取决于error.log中您的服务器如何设置而无需采取额外步骤。 YMMV – 2014-10-09 13:37:52

+0

@JayBlanchard哪个error.log?我从来没有见过/听说过/经历过这个。 YMMV的含义是什么? :) – 2014-10-09 13:41:46

+0

如果您在Linux机器上,请查看服务器的错误日志。在许多Linux发行版中,路径是/var/log/apache/error.log。 YMMV =='您的里程可能会有所不同' – 2014-10-09 13:44:36

-1

简单运行mysql_query,然后你可以访问mysql_errnomysql_error。 并用mysqli函数代替mysql_函数。

1

我知道你已经有很好的答案,但我做的事情是这样的(除了我现在使用PDO,也应你):

function error_catcher($error) { 
    // Any code you want here, including echo, logging, emailing of error, and so on. 
} 

$sql=mysql_query("select * from table") or die(error_catcher(mysql_error())); 

请注意:

该mysql_扩展弃用为PHP 5.5.0,并且不建议用于编写新的代码,因为它会在将来被移除。相反,应使用mysqliPDO_MySQL扩展名。请参阅MySQL API Overview以获得进一步帮助,同时选择MySQL API。

相关问题