简体   繁体   English

PHP查询中的MySQL语法错误未显示在浏览器中

[英]Mysql syntax error in php query not showing up in browser

Let's say that I have an error in a php/mysql query : 假设我在php / mysql查询中有一个错误:

$query = "SELECT * ROM users WHERE _id = :user_id";

Here, FROM is missing an "F". 在此,FROM缺少“ F”。 When I launch this php file in localhost, my browser is not reacting, it should display something like that: 当我在本地主机中启动此php文件时,我的浏览器没有反应,它应显示如下内容:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server 

But it doesn't, only blank page... How do I enable this option? 但这不是,只有空白页...如何启用此选项?

EDIT: I'm using PDO. 编辑:我正在使用PDO。

  • If you use mysql_* functions you have to do something like: mysql_query($sql) or die(mysql_error()); 如果使用mysql_*函数,则必须执行以下操作: mysql_query($sql) or die(mysql_error());
  • If you use mysqli_* : mysqli_query($sql) or die(mysqli_error()); 如果使用mysqli_*mysqli_query($sql) or die(mysqli_error());
  • If you use PDO : $stmt->execute() or die(print_r($stmt->errorInfo)); //$stmt is instance of PDOStatemen 如果使用PDO$stmt->execute() or die(print_r($stmt->errorInfo)); //$stmt is instance of PDOStatemen $stmt->execute() or die(print_r($stmt->errorInfo)); //$stmt is instance of PDOStatemen

If you still use mysql_* I strongly recommend to stop using (sql injection I mean). 如果您仍然使用mysql_*我强烈建议您停止使用(我指的是SQL注入)。

  • First use mysql_error() function in your code in case if query is not executed successfully. 如果查询未成功执行,请首先在代码中使用mysql_error()函数。 something like this : 像这样的东西:

     if(!mysql_query($query)){ echo mysql_error(); } 
  • Secondly, check in your php.ini whether error_reporting is on or off. 其次,检查您的php.ini是否打开或关闭error_reporting。

Then check on the browser for the error. 然后在浏览器上检查错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM