2013-10-09 3 views
0

Я представляю себя PDO, и я пытаюсь получить данные с ним. Я делал это раньше, но теперь я постоянно получаю ошибки. Я прошел через это несколько часов и не нашел ошибки. Если кто-то может помочь: мой код:Получение данных с 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

Некоторые дополнительная информация: $ а меняется всегда, когда условие цикла выполняется. таблица afunda_ $ а создается, как и ожидалось, таблица afundamento существует нормально.

признателен за любую помощь/предложения.

+0

do 'var_dump ($ tabelas_intervalos_afunda)'. Если это логическое значение false или что-то иное, чем дескриптор результата базы данных, у вас где-то есть сбой. –

+0

Пробовал этот и возвращенный объект (PDOStatement) ... ["queryString"] "CREATE TABLE, ЕСЛИ НЕ СУЩЕСТВУЕТ ... WHERE id> 96 И id <122"} – GustavoxD

ответ

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']; 
} 
+0

, но оператор create фактически создает таблицу в моем db. – GustavoxD

+0

Да, он создает таблицу. Но результатом запроса является успех или неудача, а не любые записи, которые вы можете пропустить. –

+0

Хм, извините, я не понимаю, что имел в виду. U означает, что я создаю таблицу, но не могу получить записи? – GustavoxD

Смежные вопросы