【发布时间】:2014-02-01 02:51:52
【问题描述】:
我正在尝试编写一个准备好的语句,该语句从一组绑定字段中收集数据并将它们输出到一个名为 $data 的数组变量中。
global $db;
$user_id = (int)$user_id;
$fields = 'field1, field2, field3';
$stmt = $db->prepare("SELECT :fields FROM users WHERE user_id = :user_id");
$stmt->bindValue(':user_id', $user_id);
$stmt->bindValue(':fields', $fields);
$stmt->execute();
$result = $stmt->fetchall();
foreach ($result as $row) {
$data[] = array(
'field1' => $row['field1'],
'field2' => $row['field2'],
'field3' => $row['field3']
);
}
print_r($data);
然而一切都是……
Notice: Undefined index: field1 in C:\\\\\\.php on line #
Notice: Undefined index: field2 in C:\\\\\\.php on line #
Notice: Undefined index: field3 in C:\\\\\\.php on line #
Array ( [field1] => [field2] => [field3] => )
这里是 vardump(注意,这里的代码是我的代码的副本。转储是一个副本和删除了字段名称的帖子。)
array(1) { [0]=> array(2) { ["field1, field2, field3"]=> string(22) "field1, field2, field3" [0]=> string(22) "field1, field2, field3" } } Array ( [field1] => [field2] => [field3] => )
这可能很简单..但我正处于从错误中吸取教训的时候。
另外,我想将$field 变量从字符串更改为数组。如何绑定一个数组来处理每条数据,然后将其输出到$data 数组中?
【问题讨论】:
-
你能
var_dump($result);吗? -
字段是否为空?
-
@ShankarDamodaran 很有趣,我以后肯定会用它来调试!更新了帖子!
-
您需要以
array()的身份执行,而不是您现在的方式。 -
@Jack 哎呀,是的,他们会的。这段代码是删除了所有关键信息的副本。我已经更新了它以反映我的代码,它确实有一个数据库!
标签: php html mysql pdo prepared-statement