@PetrovAnto

Почему не получается записать в базу данных?

Подскажите, почему происходит ошибка?

Notice: Undefined variable: link in /index.php on line 89
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /index.php on line 89

$host = 'localhost';
$user = '12';
$pass = '123';
$db_name = '1234';
$link = mysqli_connect($host, $user, $pass, $db_name); 

$query    = "INSERT INTO cat (image) VALUES ('$image_name')";
$result   = mysqli_query($link, $query); //#89
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ответы на вопрос 3
FanatPHP
@FanatPHP
Чебуратор тега PHP
Сразу учимся правильно работать с БД.
Сначала учимся правильно соединяться.
Весь этот детский лепет "не могу соединиться с БД" выкидываем и пишем нормальный код, который без всяких проверок сам сообщит об ошибках

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect($host, $user, $pass, $db_name);
$link->set_charset("utf8mb4");

после этого переписываем свою функцию на добавление, предавая в неё линк в качестве параметра
function ins ($link, $image_name) {
    $stmt = $link->prepare("INSERT INTO cat (image) VALUES (?)");
    $stmt->bind_param("s", $image_name);
    $stmt->execute();
}

причем используем нормальный запрос, а не такой через который на сайт будут шелл заливать
Ответ написан
vilinyh
@vilinyh
Потому что подключение к базе данных не удалось.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Лучше создать класс базы данных и потом его использовать.
Инициализацию и запросы - решение FanatPHP.

Это и проще, и быстрее, и надёжнее, и правильнее.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы