[英]getting results of SQL query
我已经看到有很多方法可以将SQL查询的结果转换为可用的格式(即变量)。
如果我有一个定向的SQL查询,并且知道该查询将返回一组期望值,可以说查询一个客户编号以提取数据,城市,州,姓氏和名字等。
代码示例如下:
$example = '50';
$result = mysql_query("SELECT * FROM customers WHERE customer_ID = '$example'",$db);
while ($row = mysql_fetch_assoc($result)) {
foreach ($row as $col => $val) {
if ($col == 'firstname') {
$customerfirstname = $val;
}
}
}
或另一种方式:
$result = mysql_query("SELECT * FROM customers WHERE customer_ID = '$example'",$db);
$myResultArray = array();
while ($row = mysql_fetch_assoc($result))
$myResultArray = $row;
foreach ($myResultArray as $val) {
$customerfirstname = $val['firstname'];
}
我只能想到这两个。
上述方法中的一种优于其他方法吗? 如果是这样,为什么?
有没有比这两种方法更有效的替代方法?
都不是首选。
foreach
是多余的。
由于知道所需的字段名称,因此可以执行以下操作:
while ($row = mysql_fetch_assoc($result)) {
$customerfirstname = $row['firstname'];
}
如果由于某种原因确实需要应用条件,则可以测试字段在数组中的存在:
while ($row = mysql_fetch_assoc($result)) {
if (isset($row['firstname'])) {
$customerfirstname = $row['firstname'];
}
}
最后,由于您似乎正在通过主键进行选择,因此while循环也是不必要的:
if ($row = mysql_fetch_assoc($result)) {
$customerfirstname = $row['firstname'];
}
我已经使用了第一个示例,您在我做过的每个网站中提出的示例都需要数据库,并且还没有使我失望。 至于一个比另一个更好,我会说不。 这只是一个品味问题。
有很多方法。 这是一个快速的方法,但是我更愿意使用DTO进行设置并以这种方式访问它。
$query = "SELECT first_name, last_name, city FROM customers WHERE customer_id = '$example'";
$result = mysql_query($query);
// If you are expecting only one row of data, then use this:
list($first_name, $last_name, $city) = mysql_fetch_row($result);
//several rows:
while(list($first_name, $last_name, $city) = mysql_fetch_row($result)){
echo $first_name;
}
我似乎缺少了一些东西...
为什么不呢?
$result = mysql_query("SELECT * FROM customers WHERE customer_ID = '$example'",$db);
while ($row = mysql_fetch_assoc($result)) {
$customerfirstname = $row['firstname'];
}
在第一个例子中?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.