2013-10-02 3 views
0

есть. Я перехожу от mysql к структуре PDO, и у меня возникла проблема, когда бы попробовал оператор foreach, если бы я мог получить некоторую помощь, был бы признателен. структура, которая не работает в:создание php-массива из таблицы в mysql с использованием PDO

foreach ($con -> query('SELECT MIN(LEAST(L1_RMS, L2_RMS, L3_RMS)) AS menor_valor FROM afunda_eleva') as $array_min_afund) 
{ 
$intensidade_elevacao[] = $array_min_afund['menor_valor']; 
} 

где

$ жулика является моим переменным для подключения к базе данных. (работает нормально).

ошибка, что я получаю, когда я бегу это:

«Недействительный аргумент для Еогеасп()»

Проблема заключается в том, что я использовал эту такую ​​же структуру, несколько строк, помимо этого в программе и это сработало. Кто-нибудь знает возможную причину этого? Заранее спасибо!

EDIT

$result = ($con -> query('SELECT MIN(LEAST(L1_RMS, L2_RMS, L3_RMS)) AS menor_valor FROM afunda_eleva')); 
while ($row = $result -> fetch_assoc()) 
    { 
    $intensidade_elevacao[] = $row['menor_valor']; 
    } 
+3

PDO: : query() возвращает объект PDOStatement или FALSE при ошибке. <- ваш запрос не удался, и вы пытаетесь перебрать логическое значение false? – OIS

+0

Я не думаю, что это вопрос. Ну, по крайней мере, он работает на phpmyadmin. – GustavoxD

+0

'foreach()' перебирает массивы, '$ con> query()' не возвращает массив, поэтому ... – Havenard

ответ

0

Что-то вы собираетесь хотите сделать, это получить PDO бросать исключения. Их гораздо труднее пропустить, чем предупреждений и ошибок.

Вот конструктор PDO Я использую ...

$con = new PDO('mysql:host=localhost;dbname=your_db_name;charset=utf8', 'username', 'password', array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, 
    PDO::ATTR_EMULATE_PREPARES => false, 
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC)); 

Теперь, предполагая, что ваш запрос на самом деле работает, он только собирается возвращать одну строку с одной колонкой, так попробуйте следующее

$stmt = $con->query('SELECT MIN(LEAST(L1_RMS, L2_RMS, L3_RMS)) AS menor_valor FROM afunda_eleva'); 
$menor_valor = $stmt->fetchColumn(); 
Смежные вопросы