从数据库查询设置变量的更好方法

时间:2010-11-17 12:13:45

标签: php mysql

我使用的是PHP5和MySql,我想知道是否有办法自动设置变量而不是全部写出来?

我目前正在使用以下代码:

$sSQL = "SELECT * FROM myTable";
$result = mysqli_query($dbi,$SQL); 

if(mysqli_num_rows($result)==0){} 
else 
 {
   //loop and set array
   while ($row = mysqli_fetch_assoc($result)) {
     $field1 = $row['field1'];
     $field2 = $row['field2'];
     $field3 = $row['field3']; 
   }

  $newArray[] = (array(
        "field1" => "$field1",
        "field2" => "$field2",
        "field3" => "$field3"
      ));

基本上我将变量设置为与SQL字段名称相同的名称,然后将数组设置为相同。我想知道是否有更快的方法可以手工写出所有的名字? (我也知道选择很糟糕,只是为了说明!)

2 个答案:

答案 0 :(得分:2)

一种选择是在SQL查询中使用显式字段名称并直接分配每个结果行。此外,选择 * reduces performance的列,并使您的查询意图不那么明确。

$sSQL = "SELECT field1, field2, field3 FROM myTable";

// other code

while ($row = mysqli_fetch_assoc($result)) {
    $newArray[] = $row;
}

但是,如果您只是想要动态创建变量,那么extract()可能会成功。

答案 1 :(得分:0)

为什么要写“mysqli”?为什么我?

关于你的问题:最常见的方式(甚至是最简单的方法)是通过mysql_fetch_object,然后你描述一个类似的var     $ var = $ row-> FIELD;

mysql_fetch_assoc是另一个可能的功能,但第一个功能比assoc更好...