将行的MySQL字段提取到PHP变量和数组中

将行的MySQL字段提取到PHP变量和数组中,php,mysql,automation,Php,Mysql,Automation,我有一个表格,里面有一大堆字段和记录(40多个字段) 我使用MySQL结果如下: <?php $field1 = $row['field1']; $field2 = $row['field2']; $field3 = $row['field3']; ?> 该函数正是这样做的: extract($row); 默认情况下,它将覆盖任何现有变量(例如,如果您已经有field1变量,它将覆盖它)。通过将EXTR_SKIP作为第二个参数传递,可以禁用此功能: extract($ro

我有一个表格,里面有一大堆字段和记录(40多个字段)

我使用MySQL结果如下:

<?php
 $field1 = $row['field1'];
 $field2 = $row['field2'];
 $field3 = $row['field3']; 
?>
该函数正是这样做的:

extract($row);
默认情况下,它将覆盖任何现有变量(例如,如果您已经有
field1
变量,它将覆盖它)。通过将EXTR_SKIP作为第二个参数传递,可以禁用此功能:

extract($row, EXTR_SKIP);
或者,您可以为所有变量添加前缀:

extract($riw, EXTR_PREFIX_ALL, 'row');
您可以使用:

但是,请注意不要用此函数污染名称空间。假设您已经有一个名为
$car
的变量,并且数据库中有一个名为
car
的字段。您可能无意中覆盖了现有的变量

因此,使用以下设备可能更安全:

extract($row, EXTR_SKIP); // don't extract variables that already exist in the namespace
编辑:关于编辑,您不需要为结果创建数组。。。$row数组就是结果。如果按照编辑中的方式构造数组,
$arr['field1']=$row['field1']
,那么为什么不完全绕过此数组的构造,只使用原始的
$row

另外,如何生成包含结果的数组



妮斯,我不知道!谢谢您也可以使用该函数的前缀设置来帮助避免这种情况-我实际上有一些东西要添加到问题中-我应该问另一个问题,还是只是添加到这个问题中?@Jeff如果这是对这个问题的澄清,您可以在评论中提问或编辑问题。如果主要是一个新问题,那就创建一个新问题。@Christopher-我编辑了它,请告诉我你是否认为我应该再问一个问题!如果您这样做,请确保在列名不表示列时,永远不要使用列名作为变量。因为这真的很难做到,我真的建议你不要这样做,因为这意味着你可能会覆盖其他变量(从破坏你的脚本到利用你的网站),你确定你需要全部40个吗,这意味着你的大脑有问题architecture@Col-不是真的-字段包含一个用于生成设计的值:)编辑标题,因此我可以问另一个标题相同的问题,目的是对回答者公平,以防编辑的不是已接受的答案。因此“行”将使变量为$rowfield1?@Jeff Yep。在那个例子中,它会在所有变量前面加上“row”前缀。太棒了——我编辑了我的问题,如果这个问题也能解决的话,那就太棒了!哇!真的那么简单吗?:)根据你非常简短和模糊的问题-是的。@Jeff我看不出单独变量的用处then@Jeff
$arr=$row
多少有点像个笑话。当然,您可以使用$row变量,这就是您所需要的。是的,没错!:)不过,我还有最后一件事要补充,但我觉得我必须为它提出另一个问题,尽管它的主题几乎完全相同。
extract($row);
extract($row, EXTR_SKIP); // don't extract variables that already exist in the namespace
$arr = $row;