我正在向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正常存在。
非常感谢任何帮助/建议。
答案 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'];
}