使用PDO获取数据

时间:2013-10-09 21:32:22

标签: php fetch

我正在向PDO介绍自己,我正在尝试用它来获取数据。我以前做过这个,但现在我总是遇到错误。我已经经历了几个小时,并没有发现错误。如果有人可以提供帮助:我的代码是:

$tabelas_intervalos_afunda = ($con -> query('CREATE TABLE IF NOT EXISTS afunda_$a
SELECT (L1_forma_tensao_max + L1_forma_tensao_min)/2 as L1_forma_tensao, (L2_forma_tensao_max + L2_forma_tensao_min)/2 as L2_forma_tensao, (L3_forma_tensao_max + L3_forma_tensao_min)/2 as L3_forma_tensao
FROM afundamento
WHERE id > $prevNum AND id < $a');

while($row=$tabelas_intervalos_afunda->fetch(PDO::FETCH_ASSOC))
{
$array_forma_onda_fase1_afund[] = $row['L1_forma_tensao'];
$array_forma_onda_fase2_afund[] = $row['L2_forma_tensao'];
$array_forma_onda_fase3_afund[] = $row['L3_forma_tensao'];
}

我的问题是,当我var_dump($array_forma_onda_fase1_afund)时,它会返回“未定义的变量$ array_forma_onda_fase1_afund
NULL

其他一些信息:$ a在满足循环条件时始终更改。表afunda_ $ a正在按预期创建,表afundamento正常存在。

非常感谢任何帮助/建议。

1 个答案:

答案 0 :(得分:2)

您正在运行create table语句,该语句不返回任何行。然后在结果上运行fetch,该结果不会输入while语句。因此永远不会定义$array_forma_onda_fase1_afund

如果您想要插入的记录,可以从新表中选择它们或运行原始的选择查询。 E.g:

$con->query('CREATE TABLE IF NOT EXISTS afunda_$a
SELECT (L1_forma_tensao_max + L1_forma_tensao_min)/2 as L1_forma_tensao, (L2_forma_tensao_max + L2_forma_tensao_min)/2 as L2_forma_tensao, (L3_forma_tensao_max + L3_forma_tensao_min)/2 as L3_forma_tensao
FROM afundamento
WHERE id > $prevNum AND id < $a');

$tabelas_intervalos_afunda = $con->query("SELECT * FROM afunda_$a");

while($row=$tabelas_intervalos_afunda->fetch(PDO::FETCH_ASSOC))
{
  $array_forma_onda_fase1_afund[] = $row['L1_forma_tensao'];
  $array_forma_onda_fase2_afund[] = $row['L2_forma_tensao'];
  $array_forma_onda_fase3_afund[] = $row['L3_forma_tensao'];
}
相关问题