我错过了什么吗?从PHP中读取数据库似乎是啰嗦的

时间:2011-09-24 15:53:49

标签: php mysql database

所以,如果我想从我的数据库中提取一些数据(PHP,MySql),无论我是为一个类编写还是硬编码,我都在做以下几点:

$x = "SELECT <column(s)> FROM <table> WHERE <conditions>";
$y = mysql_query($x);
while($result = mysql_fetch_assoc($y))
{
echo $result['column']; // etc
}

显然我使用的是一个函数或类(取决于设计模式)所以拉这样的数据是在一行中完成的,我只是想知道我是否做了'太多的工作',如果有更快的方法这样做。

感谢。

2 个答案:

答案 0 :(得分:1)

看起来不错。你也许可以将第一个牵引线合并到“$ y = mysql_query('SELECT FROM WHERE');”

请注意,在PHP中,使用单引号(')而不是双引号(“)更快(从编译时开始)。

这取决于进一步的工作,但您可能想考虑将信息加载到XML dom格式。 (如果你想做更复杂的事情,只代表数据)

答案 1 :(得分:1)

通过使用更新的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