因此,如果我想从数据库(PHP, MySql)中提取一些数据,无论我是为类编写还是硬编码,我一直在做以下事情:
$x = "SELECT <column(s)> FROM <table> WHERE <conditions>";
$y = mysql_query($x);
while($result = mysql_fetch_assoc($y))
{
echo $result['column']; // etc
}
显然我使用一个函数或类(取决于设计模式),所以像这样拉数据是在一行中完成的,我只是想知道我是否在做"太多的工作",如果有一个更快的方法来做到这一点。
谢谢。
您可以通过使用最新的PHP模块来访问数据库,从而获得更紧凑的代码。
您正在使用的mysql_xxx()
函数已被mysqli_xxx()
函数所取代。它使用了类似的代码,但提供了比旧库更多的特性和安全性:
$query = 'SELECT <column(s)> FROM <table> WHERE <conditions>';
if ($result = $mysqli->query($query)) {
while ($row = $result->fetch_assoc()) {
print $row['column'];
}
}
你可以在这里找到更多关于MySQLi(包括它与旧MySQL库的不同之处):http://php.net/manual/en/book.mysqli.php
但是对于真正简洁的代码,您可以考虑查看PDO库。您的查询可以用PDO表示,如下所示:
$sql = 'SELECT <column(s)> FROM <table> WHERE <conditions>';
foreach ($conn->query($sql) as $row) {
print $row['column'];
}
…如果你真的想,前两行代码也可以合并。
在PHP手册站点找到更多关于PDO的信息:http://www.php.net/manual/en/book.pdo.php
看起来不错。你可以将前两行合并为"$y = mysql_query('SELECT FROM WHERE ');"
请注意,在PHP中使用单引号(')比使用双引号(")更快(从编译时间来看)。
这取决于进一步的工作,但您可能想要考虑将信息加载为XML dom格式。(如果你想做更复杂的事情,只是表示数据)