Ошибка в коде PHP для сайта

269
21 декабря 2018, 16:40

Помогите найти ошибку в коде пожалуйста. Сам ищу и никак найти не могу, в интернете тоже ничего не нашел по данной ошибке.

Выдает ошибку: Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\OSPanel\domains\geekbrain.ru\index.php on line 12

Warning: mysqli_error() expects parameter 1 to be mysqli, null given in C:\OSPanel\domains\geekbrain.ru\index.php on line 12

Код:

    <?
   $link = mysqli_connect('localhost','mysql', 'mysql', 'gb') or die (mysqli_error($link));
   $page = $_GET['p'];
   if ($page = 2) {
    $name = $_POST ['name'];
    $link = $_POST ['link'];
    $info = $_POST ['info'];
    $sql = "INSERT INTO news ( name, link, info) VALUES ( '$name', '$link', '$info')";
    $res = mysqli_query($link, $sql) or die (mysqli_error($link));
   }
?>
<html>
<head>
    <title>Блог</title>
    <meta charset="utf-t">
</head>
<body>
<ul>
<li><a href="?p=1">Главная</a></li>
<li><a href="?p=2">Добавить</a></li>
</ul>
<?
   switch($page) {
case 2:
var_dump($_POST);
echo<<<text
<form method="post">
<input name= "name" placeholder="Название"><br>
<input name= "link" placeholder="Ссылка"><br>
<textarea name= "info" placeholder=""></textarea><br>
<input type='submit'>
</form>

text;
break;
default:
 $res = mysqli_query($link, 'SELECT * FROM news')  or die (mysqli_error($link));
while($row = mysqli_fetch_assoc($res)) {
echo<<<text
<h2>{$row['name']}</h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/{$row['link']}" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
text;
}
break;
}
?>
    </body>
</html>
Answer 1

По моему ошибка в переменной $link, потому возвращает null и поэтому в 12 строке ошибка. Проверь подключение в $link

Answer 2

Попробуй добавь проверку для форму добавления, на заполнение каждого поля

        if($_POST['name'] && $_POST['link'] && $_POST['info'])
        {
          $name = $_POST ['name'];
          $link = $_POST ['link'];
          $info = $_POST ['info'];
          $sql = "INSERT INTO news ( name, link, info) VALUES ( '$name', '$link', '$info')";
          $res = mysqli_query($link, $sql) or die (mysqli_error($link));
        }
READ ALSO
Пытаюсь получить ответ из бд в виде json&#39;а

Пытаюсь получить ответ из бд в виде json'а

mysql_fetch_assoc() просит какой-то параметр в виде ресурса, не понимаю что э то значит, основной код:

202
websocket выключается из-за простоя PHP

websocket выключается из-за простоя PHP

Возникли проблемы с веб-сокетомРаботает отлично, все супер, но если сокетом никто не пользуется больше 1 минуты, он выключается

204
Как реализовать часы работы

Как реализовать часы работы

Как реализовать хранение времени работы заведения в бд (структура)

244
Распарсить многомерный массив json

Распарсить многомерный массив json

Я видел уже один пример, но в моём случае выдаёт undefined (возможно я гдет накосячил)Есть такой массив [{"name":"\u0414\u0435\u043d\u0438\u0441","last_n":"\u041b\u0435\u0431\u0435\u0434\u0435\u0432","avatar":"\/user\/0M\/0K\/2\/pictures\/avatar\/8c16432d87bec8614f709ddba

209