2015-01-15 3 views
1

У меня возникла проблема с извлечением данных из базы данных. Почему код всегда хранит «массив»?Почему всегда держать дисплей «массив»

$connection_string = $database.':host='.$host_name.';dbname='.$database_name.';charset='.$charset; 
$db = new PDO($connection_string, $database_username, $database_password); 

$username = $_SESSION['username']; 
$password = $_SESSION['password']; 
$query = "SELECT password FROM user "; 
$st = $db->prepare($query); 
$st->execute(); 
$result = $st->fetchAll(PDO::FETCH_ASSOC); 

echo $result; 

Здесь я хочу взять данные из столбца пароля. Но когда я хочу проверить, это выборка или нет, но она отображает «массив». Кто-нибудь может мне помочь? Спасибо !

+0

просто используйте 'print_r ($ result)' вместо 'echo $ result' – SagarPPanchal

ответ

1

Результат возвращается из БД в ассоциативном массиве PDO::FETCH_ASSOC, echo не может печатать элементы массива, поэтому его отпечатки array

Использование print_r($result) или var_dump($result) печатать полный набор

printr_r($result); 

Я использую простую функцию dd() в моей разработке для печати debug msg

//Debug Print Functions 
function dd($input, $format = 'var_dump') { 
    echo ('<pre style="background-color: #FFFBD5; 
     border: 1px solid #F8EBAB; padding: 5px; 
     margin:5px 0; box-shadow: 2px 2px 0 #F7FFCD">'); 
    $format($input); 
    echo ('</pre>'); 
} 
+0

привет Saqueib Спасибо, теперь. Могу ли я задать еще один вопрос, правильно ли это условие? if ($ _ POST ['old_password']! = $ result) –

+0

Вам нужно 'if ($ _ POST ['old_password']! = $ result [0] ['password'])' – Saqueib

+0

привет спасибо, он работает сейчас! –

0

Вы не ссылаетесь на каждый элемент массива. Вы просто печатаете массив, который не будет печатать элементы массива. Попробуйте это: -

foreach($result as $r){ 
    echo $r; 
} 

или используйте print_r($result) (как это было предложено @Saqueib)

0
$st = $db->prepare($query); 
$st->execute(); 
$result = $st->fetchAll(); 

print_r($result); 

Смотрите руководство fetchAll

также в вашем случае вы получаете только значение пароля, так что вы может попробовать этот путь также

$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0); 
print_r($result); 

Это напечатает одно измерениеa l массив паролей

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