MySQL, как вставить массив

У меня есть массив $test = ["1", "Лалала", "И другой текст"]. Как мне этот массив отправить в ячейку mysql и получить обратно же? Пытался сделать с json_encode, не выходит.


Ответы (1 шт):

Автор решения: Slava Rozhnev

Лучше всего не хранить массивы в ячейках базы данных, а использовать отдельные ячейки для каждой строки. Но если очень хочется то так:

<?php

$test = ["1", "Лалала", "И другой текст"];

// записываем в базу данных
$query = "INSERT INTO tbl VALUES (:data);";
$stmt = $pdo->prepare($query);
$stmt->execute([':data' => json_encode($test)]);

// читаем из базы
$query = "SELECT data FROM tbl;";
$stmt = $pdo->prepare($query);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);


$result = json_decode($row['data'], true);

print_r($result);

PHP MySQL online json_encode

→ Ссылка