Ошибка Warning: mysqli_query() expects parameter 1 to be mysqli, null given in index.php

SPR1NG

Новичок
Выдает ошибку Warning: mysqli_query() expects parameter 1 to be mysqli, null given in index.php on line
Посмотрел уже много статей но нечего толкового не нашёл
Вот код:

<?php
$config = array(
'title' => 'SuperNews',
'db' => array(
'server' => 'localhost',
'name' => 'root',
'password' => 'root',
'db_name' => 'test_db'
)
);

$connection = mysqli_connect(
$config['db']['server'],
$config['db']['name'],
$config['db']['password'],
$config['db']['name_db']);
if ($connection = false)
{
echo 'Ошибка подключения';
echo mysqli_connect_error();
exit();
}

$categories = mysqli_query($connection, "SELECT * FROM `articles_categories`");
php while ($cat = mysqli_fetch_assoc($categories) )
{
echo $cat['title'];
}
?>
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
То есть php while ($cat = mysqli_fetch_assoc($categories) ) тебя не смутило?)
 

ksnk

прохожий
Это уже ниже по коду :) Достаточно и одной ошибки
 

Фанат

oncle terrible
Команда форума
Толковая статья https://phpdelusions.net/mysqli/mysqli_connect

Правильный код
PHP:
<?php


$config = array(
    'title' => 'SuperNews',
    'db' => array(
        'server' => 'localhost',
        'name' => 'root',
        'password' => 'root',
        'db_name' => 'test_db'
    )
);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$connection = mysqli_connect(
    $config['db']['server'],
    $config['db']['name'],
    $config['db']['password'],
    $config['db']['name_db']);

$connection->set_charset('utf8mb4');

$categories = mysqli_query($connection, "SELECT * FROM `articles_categories`");
while ($cat = mysqli_fetch_assoc($categories) )
{
    echo $cat['title'];
}
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@Фанат, а ты как-то писал где-то про иньекции и кодировки, или я ошибаюсь? Что возможно пропихнуть ее используя экзотическую кодировку, или моя память все, того...? А то у меня есть древняя, как говно мамонта своя обертка с prepared, но я чет в ней не уверен...
 

Фанат

oncle terrible
Команда форума
@Фанат, а ты как-то писал где-то про иньекции и кодировки, или я ошибаюсь? Что возможно пропихнуть ее используя экзотическую кодировку, или моя память все, того...? А то у меня есть древняя, как говно мамонта своя обертка с prepared, но я чет в ней не уверен...
Ой, это старая страшилка из 2004 года. На самом деле, в реальной жизни никто такую инъекцию никогда не видел, поскольку она аффектит только очень экзотические кодировки. Все однобайтные кодировки и семейство utf кодировок ей не подвержены. И даже и с ними, если использовать не SET NAMES , а set_charset() для установления кодировки, то и тогда все будет хорошо,

Я кодировку устанавливаю чисто чтобы вопросов дальнейших не было, почему вопросики.
 
Сверху