Php 使用PDO获取数据

Php 使用PDO获取数据,php,fetch,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_ma

我正在向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'];
}
$tabelas\u intervalos\u afunda=($con->query('CREATE TABLE IF NOT EXISTS afunda\uu$a
选择(L1形式张量最大+L1形式张量最小)/2作为L1形式张量,(L2形式张量最大+L2形式张量最小)/2作为L2形式张量,(L3形式张量最大+L3形式张量最小)/2作为L3形式张量
从阿芬达门托
其中id>prevNum和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\u dump($array\u forma\u onda\u fase1\u afund)
时,它返回我“Undefined variable$array\u forma\u onda\u fase1\u afund
空的

一些附加信息:$a始终在满足循环条件时更改。正在按预期创建表afunda_U$a,表AFUNDATAMENTO正常存在


非常感谢您的帮助/建议。

您正在运行一个create table语句,该语句不返回任何行。然后对结果运行
fetch
,它不会在
语句时输入
。因此,
$array\u forma\u fase1\u 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'];
}
$con->query('CREATE TABLE IF NOT existed afunda_u$a
选择(L1形式张量最大+L1形式张量最小)/2作为L1形式张量,(L2形式张量最大+L2形式张量最小)/2作为L2形式张量,(L3形式张量最大+L3形式张量最小)/2作为L3形式张量
从阿芬达门托
其中id>prevNum和id<$a');
$tabelas_intervalos_afunda=$con->query(“选择*来自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'];
}

执行
var\u dump($tabelas\u intervalos\u afunda)
。如果它是布尔值false或数据库结果句柄以外的其他内容,则说明您在某个地方遇到了故障。尝试此操作并返回对象(PDO语句)...........................................................如果不存在,则创建表…其中id"}但是create语句实际上在我的数据库中创建了表。是的,它创建了表。但是查询的结果是成功还是失败,没有任何记录可以循环。嗯,对不起,我不明白你的意思。你的意思是我正在创建表,但无法获取记录?你可以,你只需要运行另一个查询来获取它们。查看我的编辑。就是这样!在这里工作得很好!:)非常感谢。我想当你用创造。。。在查询中选择,您已将其选中以获取:s