我使用的是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字段名称相同的名称,然后将数组设置为相同。我想知道是否有更快的方法可以手工写出所有的名字? (我也知道选择很糟糕,只是为了说明!)
答案 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更好...