0

我正在向 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 正常存在。

将不胜感激任何帮助/建议。

4

1 回答 1

2

您正在运行一个 create table 语句,它不返回任何行。然后fetch在结果上运行,它不进入while语句。因此$array_forma_onda_fase1_afund从未定义。

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

$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'];
}
于 2013-10-09T21:35:41.877 回答