我正在使用oscommerce,所以你可能需要了解它才能回答这个问题,但我认为这不是很普遍。
为什么原始程序员会创建函数来执行这样的基本SQL查询:
function tep_db_query($query, $link = 'db_link') {
global $$link, $logger;
if (defined('STORE_DB_TRANSACTIONS') && (STORE_DB_TRANSACTIONS == 'true')) {
if (!is_object($logger)) $logger = new logger;
$logger->write($query, 'QUERY');
}
$result = mysql_query($query, $$link) or tep_db_error($query, mysql_errno(), mysql_error());
if (defined('STORE_DB_TRANSACTIONS') && (STORE_DB_TRANSACTIONS == 'true')) {
if (mysql_error()) $logger->write(mysql_error(), 'ERROR');
}
return $result;
}
当我似乎能够使用常规mysql_query完成查询?
我的猜测是,您不必继续重新定义数据库连接?我不确定,因为我可以像我说的那样使用mysql_query。很显然,我对此很陌生,所以我错过了一些好奇的东西。
答案 0 :(得分:2)
如果你逐行浏览代码并查看它的作用,很明显该函数是为了记录和执行查询而编写的。 mysql_query
将执行sql,但不执行任何记录。
答案 1 :(得分:1)
因为您不必每次都编写mysql_query
,因为您每次编写mysql查询时都不必编写错误处理。所有重复的事情都可以在该自定义函数中处理。这就是我们编写自定义函数的原因。你不必在每个mysql_query调用中编写mysql_error(),因为你有自己的自定义函数可以处理所有这些事情。
我们可以在一个自定义函数中处理泛化事务,因此我们不必每次调用mysql_query时反复写入它们。
答案 2 :(得分:0)
在这个函数中,他们不仅调用mySQL,还将查询记录到日志对象中,对框架常量运行检查并定义自定义错误处理程序。这是一个函数,因为他们不想在每次查询数据库时都写出这个代码。
答案 3 :(得分:0)
在这种情况下,到
如果不评论此代码的实际质量,这是一种非常常见的做法。