Подключение к базе данных в PHP 7

но я не понимаю, что делаю не так и почему не работает?

Похоже, он подключается к БД, но не обновляет таблицу БД.

Мой код PHP

<?php
        $host = 'localhost';
        $db_name = 'db_name';
        $db_user = 'user'; 
        $db_password = 'password';

        $con = mysqli_connect($host, $db_user, $db_password, $db_name);
            if (!$con) {
    die("Connection failed: " . mysqli_connect_error());
}
        function _VoteReward($custom)
             {
                $sql = "UPDATE `users` SET `gold` = `gold` + 50000 WHERE `id` = '".$custom."' ";

                mysqli_query($con, $sql);
            }


            $custom = $_POST["custom"];
            $key = $_POST["key"];
            $result = false;

                if (($custom > 0) && ($key == 'key'))
            { 
                $result = true;
                _VoteReward($custom);

                }
    mysqli_close($con);

 ?> 

Вы не знаете, что не так, потому что не проверяете ошибки в своем коде. Никогда не предполагайте, что код всегда будет работать безупречно. Используйте mysqli_error(), чтобы получить подробное сообщение об ошибке из базы данных.

John Conde 25.05.2018 14:48

Ваш сценарий подвержен риску Атака с использованием SQL-инъекции. Посмотрите, что случилось с Маленькие столики Бобби. Даже если вы избегаете ввода, это небезопасно!. Используйте подготовленные параметризованные операторы.

John Conde 25.05.2018 14:49

@JohnConde Ошибка отсутствует, если я уберу синтаксис функции и загружу файл, который работает. Но он не работает!

WikStar 25.05.2018 14:59
$con не входит в объем _VoteReward.
deceze 25.05.2018 15:00

Спасибо @daceze, это была проблема

WikStar 25.05.2018 15:02
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
5
2 723
1

Ответы 1

Приведенный выше код действительно создает соединение с базой данных. Однако полученное соединение нужно проверять на наличие ошибок. Обычно по следующему:

if (!$con)
{ // creation of the connection object failed
    die("connection object not created: ".mysqli_error($con));
}

if (mysqli_connect_errno()) 
{ // creation of the connection object has some other error
    die("Connect failed: ".mysqli_connect_errno()." : ". mysqli_connect_error());
}

Другие вопросы по теме