$ sql和$ result - 使用两者的原因?

时间:2011-05-26 16:33:23

标签: php sql variables performance

只是试图提高代码的效率,这是一个简单的问题:

我经常看到人们使用一个var($ sql)声明他们的SQL查询,然后将结果放入另一个($ result)。除了让事情稍微整洁之外,人们还有什么理由这样做吗?我认为将SQL查询直接放入mysql_query()会更好。但是人们可能还有其他一些隐藏的原因。

3 个答案:

答案 0 :(得分:3)

通常可以使调试更容易:如果出于任何原因SQL查询出现问题,您只需打印$sql变量的内容即可。

此外,SQL查询的内容可能会变得很长,并且在函数调用中超过一定长度看起来相当难以理解。

答案 1 :(得分:3)

如果出现错误,它会导致更清晰的编码。

如果您在第151行和151处有错误:

mysql_fetch_array(mysql_query("SELECT * FROM something")); //where is the error

那时更难阅读:

第150行和第149-151行的错误是:

$sql = "SELECT * FROM something";
$result = mysql_query($sql); // ahh the error is here
mysql_fetch_array($result);

答案 2 :(得分:2)

没有任何神奇的东西。将SQL放入变量有很多好处,而且缺点很少;将SQL查询直接传递给mysql_query函数也是如此。

对于初学者......你直接使用mysql_query?大多数开发人员都会将这些函数包装到某种数据库对象/控制器中,或者他们将使用PDO等。无论如何,将SQL放入变量可以让您轻松地将您正在传递SQL 的内容换成。当我更新代码以切换数据库访问方法时,如果我更改mysql_query($sql)而不是mysql_query('SELECT .... SUPER LONG QUERY ...')这样的行,则会更容易。

调试时,可以简单地echo($sql)。如果想要与数据查询分开进行计数查询:

$sql = ' FROM table_name WHERE `some_field` = 1';
$count = db::getField('SELECT COUNT(`id`) '.$sql);
$page_worth = db::getRows('SELECT `id`, `name` '.$sql.' LIMIT '.$page.', '.$per_page);

等等,等等。它确实归结为偏好,但我发现这种方法更灵活,可快速适应/调试。