Запись массива PHP в БД SQL

95
31 марта 2022, 10:40

Пытаюсь сохранить массив в БД.

<?php 
$host = 'loccalgost'; // адрес сервера  
$database = 'name'; // имя базы данных 
$user = 'login'; // имя пользователя 
$password = 'password'; // пароль 
// подключаемся к серверу 
$link = mysqli_connect($host, $user, $password, $database)  
    or die("Ошибка " . mysqli_error($link)); 
?> 
<?php 
  
include('simple_html_dom.php'); 
  
//to parse a webpage 
$html = file_get_html('http://mysite.ru/index.html'); 
$links = array(); 
foreach($html->find('a') as $a) { 
 $links[] = $a->href; 
 $sql = "INSERT INTO Links (ID, link) VALUES ($id, $links)"; 
} 
 if (mysqli_query($conn, $sql)) { 
      echo "New record created successfully"; 
} else { 
      echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
} 
 // закрываем подключение 
mysqli_close($link); 
?>

Созданная таблица: ID (первичный) int(11)
Link char(100)
В итоге получаю ошибку: Error: INSERT INTO Links (ID, link) VALUES (, Array) Подскажите где я ошибся. Спасибо

Answer 1

Согласен с MoloF.

Самое лучшее решение хранения массива в таблице или любого другого объекта. Это сериализовать его, в json или еще что-то.

А затем хранить в таблице. При использовании просто сериализовать обратно в массив.

serialize() и json_encode().

Так же у тебя неизвестная переменная $id из-за этого у тебя получается ошибка в синтаксисе (, Array).

Сделай колонку ID автоматическим инкрементом. И используй примерно такое:

$sql = "INSERT INTO Links (link) VALUES (json_encode( $links ) )";
READ ALSO
.htaccess, get, чпу

.htaccess, get, чпу

Что нужно прописать в htaccess, что бы превратить ссылку

91
Сделать карту на весь экран

Сделать карту на весь экран

Цель: Сделать карту на весь экран без дублирования по горизонтали и верхнего "пустого пространства"Проблема: Вместо дублирования карты появились...

91
Как повторять аудио-воспроизведение?

Как повторять аудио-воспроизведение?

Есть игра на Canvas HTML5 и нужно после прерывания воспроизведения повторять данное аудио постоянноПробовал с помощью location

81
JS поиск по массиву

JS поиск по массиву

Какая-то *магия, делаю точно как в рабочем примере но не работает

106