我总是看到MySQL查询结构如此,即使是最简单的查询:
$query = "SELECT * FROM table_name WHERE id = '1'";
$result = mysql_query($query);
通过简单的一行查询(例如?
)执行上述操作是否有任何价值,时间或其他方式$result = mysql_query("SELECT * FROM table_name WHERE id = '1'";
我一直使用前者,因为当我开始使用PHP时,我认为最好简单地复制其他人,但是现在我正在处理一个相当大的(相对于我的其他工作)应用程序,我可以剪切如果确实没有差异,那就大量进行任意编码。
答案 0 :(得分:3)
使用第一个,在出现问题时更容易记录SQL(并且更容易发现拼写错误,例如缺少括号)。
答案 1 :(得分:3)
一般来说,我喜欢将它们分开,因为当我试图弄清楚为什么我的查询不起作用时,我可以很容易地做print $query;
。这主要取决于个人偏好。
答案 2 :(得分:0)
实际上除了一件事之外没有任何区别。如果您将查询放在单独的变量中,那么您可以重用它。如果查询中发生任何更改,您只需要在变量
中编辑查询答案 3 :(得分:0)
您始终可以创建一个自定义函数,该函数接收查询并运行它,并传递其他可选参数,以防您希望它返回查询,或记录查询以跟踪任何问题等。
答案 4 :(得分:0)
通过简单的一行查询(例如?
)执行上述操作是否有任何价值,时间或其他方式
当然,正如MSpreij所说,您可以在出现错误时检查您的查询。
我总是看到MySQL查询结构如此,即使是最简单的查询:
$query = "SELECT * FROM table_name WHERE id = '1'";
$result = mysql_query($query) or trigger_error(mysql_error()." ".$query);
这个简单的构造将在stackoverflow中为你节省十几个问题“这是什么意思mysql_fetch_array(): supplied argument is not a valid MySQL result
”
注意附加部分。这称为编程 如果出现错误,它会自动打印您的查询 以及mysql错误消息。或者使用适当的设置将其记录到实时服务器的错误日志中。
无需手动编写print $query;
。
但是,这两种方法都很丑陋。
它丑陋,不可维护,臃肿和重复。
应该开发一个库,这个函数可以使呼叫更智能,更少重复
$data = mydb_get_row("SELECT * FROM table_name WHERE id = 1");
完成所有处理。具有错误处理,查询记录,参数检查和api函数调用 然而,作为一个真正的单行,而不是你想要实现的愚蠢。