#php #mysql #pdo
#php #mysql #pdo
Вопрос:
Я пытался весь день, просматривал ссылки, просматривал другие вопросы, похожие на мои, кажется, ничего не работает.
ПРОБЛЕМА: я не могу выводить данные запроса.
Это моя последняя итерация кода:
try {
$link = new PDO('mysql:host=localhost;dbname=users_db', 'root', '56235623');
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
$sql = $link->prepare('SELECT * FROM users');
$sql->execute();
$result = $sql->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $key=>$value){
echo $key.$value;
}
Вот вывод:
Обратите внимание: преобразование массива в строку в C:xampphtdocsMyProjectIncludescn.php в строке 23 0Array Обратите внимание: преобразование массива в строку в C:xampphtdocsMyProjectIncludescn.php в строке 23 1Array Обратите внимание: преобразование массива в строку в C:xampphtdocsMyProjectIncludescn.php в строке 23 2Array Обратите внимание: преобразование массива в строку в C:xampphtdocsMyProjectIncludescn.php в строке 23 3Array
Комментарии:
1. проверьте here.mysqltutorial.org/php-querying-data-from-mysql-table
2. согласно вашему сообщению об ошибке, значение $ — это массив, который вы просто не можете повторить: foreach ($result как $key=> $value){
Ответ №1:
fetchAll
возвращает 2-мерный массив. Первое измерение — это строки, второе измерение — столбцы. Итак, вам нужны вложенные циклы:
foreach ($result as $i => $row) {
echo "Row: $in";
foreach ($row as $key => $value) {
echo "$key: $value; ";
}
}
Ответ №2:
$value
является ли массив, измените на:
foreach ($result as $key=>$value){
echo $key;
//check what $value contains
print_r($value);
echo "<br />";
}
Ответ №3:
Как следует из вашего уведомления, вы пытаетесь преобразовать массив в строку. Если вы просто хотите распечатать содержимое $result
переменной, вы можете использовать:
var_dump($result);
или
print_r($result);
Если вы хотите использовать foreach
для печати каждого значения в своем собственном формате:
foreach ($result as $key=>$values){
echo "Key: " , $key, " Values:", implode(", ", $values), "<br />";
}
implode
Метод объединит все значения в массиве, используя «, » в качестве связующего элемента.
Если вы хотите выполнить итерацию по своему $values
массиву, вам следует взглянуть на ответ Бармара.