php - mysql_query 语法首选项和错误原因

标签 php mysql

$query = "SELECT * FROM `table`";
$results = mysql_query($query, $connection);
if(!result) echo 'error';
     (or)
// assume connection to database is established in the beginning itself
if($result = mysql_query("SELECT * FROM `table`")) // do something 
else echo 'error';

我猜两者确实执行相同的操作。如果错了请纠正我。问题是为什么人们喜欢这种语法 mysql_query($query, $connection); ,是遵循某种标准还是用户偏好?或者它们的功能是否有所不同。

并且还要请我澄清一下, mysql_query 的原因可能是什么?返回 false 或者执行失败?以及类似 mysql_num_rows,mysql_fetch_array 的功能由于服务器或数据库问题,它们有时也会无法执行吗?

请告诉我,我将不胜感激。谢谢

最佳答案

最好将它们分开,因为这样更容易调试。例如:

$query = "SELECT * FROM `table`";
$results = mysql_query($query, $connection);
if(!result) echo "error with query $query"; // You can print the query for easy debugging

或允许简单的调试:

$query = "SELECT * FROM `table`";
if($debug) echo $query;

如果您已经检查了结果(如上面的代码所示),则 mysql_fetch_* 不会失败。如果执行查询时出错,则该行的所有代码都将失败。我们在这里看到太多代码在尝试获取结果之前从不检查错误代码并正确处理错误。

希望这有帮助。正如评论中所指出的。最好不要使用 mysql_* 函数,因为它们已被弃用。

关于php - mysql_query 语法首选项和错误原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17430037/

相关文章:

php - 如何从 html 表更新特定的 sql 行

php - 在 php 中提交主类别查询时也显示子类别数据

mysql - 为什么rails尝试连接mysql?

mysql - 如何将 TEXT 类型的列转换为 VARCHAR?

mysql - SQL MAX() 是如何工作的?

php - 配置 Emacs 以进行 Web 开发 (PHP)

php - 在 JavaScript 中向日期添加月份

php - 如何获取 cURL 获取的最后一个 URL?

mysql - 一起使用 'GROUP BY' 和 'WHERE ... IN' 的 mySQL 命令出错

php - WordPress 插入 MySQL 转换