将行的MySQL字段提取到PHP变量和数组中
我有一个表格,里面有一大堆字段和记录(40多个字段) 我使用MySQL结果如下:将行的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
<?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;