Выполнение MYSQL в PHP

Скрипт PHP не выполняет заказы MYSQL. Это почему? При тестировании скрипта MYSQL на бэкэнде он работает.

Спасибо за любой совет! Я учел целочисленный факт. Во всяком случае .. мой запрос выглядит следующим образом и не работает и не создает никаких ошибок. INSERT INTO теги (id, tags, giveTake, onOff, tagNumber) VALUES ('1234', 'jjjjjjjj', '0', '0', '1')

При копировании на бэкэнд БД работает отлично ...

<?php

    require_once('XXXX.php');
    //Variables for Authentication.
    $server_key = md5("XXXXX");
    $server_auth = $_POST["XXXXX"];

    if ($server_auth == $server_key)
    {

        //Established the connection to the mySQL server.
        $connection = new mysqli($server_name, $database_user, $database_password, $database_name);

        if ($connection) 
        {
            //Variables for userdatabase.
            //$firstName = $_POST["userFirstName"];
            //$lastName = $_POST["userLastName"];
            //$email = $_POST["userEmail"];
            //$password = $_POST["userPassword"];

            $id = $_POST["id"];
            $tags = $_POST["tags"];
            $giveTake= $_POST["giveTake"];
            $onOff = $_POST["onOff"];
            $tagNumber = $_POST["tagNumber"];

            // echo $firstName . ' ' . $lastName;
            //Getting data from the database.

            echo("vor SQL insert");
            $sql = "INSERT INTO tags (id, tags, giveTake, onOff, tagNumber) VALUES ('".$id."','".$tags."','".$giveTake."','".$onOff."','".$tagNumber."')";
            echo $sql;
            $result = mysqli_query($connection, $sql);
            echo $result;

            if ($result)
            {
                echo ("Success.");
            }
            else
            {
                die("Coo0nection Failed.".mysql_connect_error());
                echo("Cooonnection Failed.");
            }
        }
    }
    else
    {
        echo("Error.");
    }   
?>

Научитесь использовать подготовленные операторы в PHP для предотвращения SQL-инъекций. (stackoverflow.com/questions/60174/…) Вы смешиваете процедурный api mysqli (mysqli_query) с OOP api (new mysqli(...)), он должен работать в соответствии с документацией mysqli PHP, но это небрежный стиль программирования ... Вам нужно выполнить отладку с помощью функции mysqli_error(), чтобы понять, почему она не работает.

Raymond Nijland 24.05.2018 17:43

Возможный дубликат Как я могу предотвратить SQL-инъекцию в PHP?

Progman 24.05.2018 20:18

Я посмотрел, но с существующим контентом, обеспечивающим эхо прямо перед отправкой запроса ... все выглядит нормально.

Lutzel 28.05.2018 20:35

Пожалуйста, проверьте наличие ошибок - stackoverflow.com/a/17053489/296555

waterloomatt 28.05.2018 21:16

Ошибок нет :( Кажется, все работает без проблем. Но результат остается ложным.

Lutzel 29.05.2018 07:26
Стоит ли изучать 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 и хотите разрабатывать...
0
5
43
1

Ответы 1

Удалите цитату из id, если это int в базе данных. Ints не нуждаются в кавычках, это приведет к сбою запроса, и если $ tagNumber является int, удалите также одинарные кавычки. Надеюсь, поможет.

$sql = "INSERT INTO tags (id, tags, giveTake, onOff, tagNumber) VALUES (".$id.",'".$tags."','".$giveTake."','".$onOff."','".$tagNumber."')";

«Ints не нуждаются в кавычках, это вызовет сбой запроса», неправильная автоматическая рассылка MySQL и запрос не завершится ошибкой .. SQL-инъекция все еще существует в этом ответе

Raymond Nijland 24.05.2018 17:48

Проверьте это db-fiddle.com/f/3udvnfti7GHhmAUuGUB1W3/0, я не вижу сбоев MySQL прямо здесь.

Raymond Nijland 24.05.2018 17:52

Вы никогда не должны заключать числа в кавычки. Для этого есть веская причина. противоречивые результаты. Узнайте больше о приведении типов здесь. MySQL объясняет это stackoverflow.com/questions/6781976/mysql-quote-numbers-or-n‌ ot.

Jonny 24.05.2018 17:55

Я поддерживаю вашу часть "ints не нужны кавычки" (если тип данных столбца также является int), поэтому вам не нужно защищать этот оператор ... Вот почему вы должны использовать подготовленные операторы и позволить драйверу делать кавычки за вас .

Raymond Nijland 24.05.2018 17:58

Запрос без кавычек не заставил запрос работать. Я согласен с тем, что снимать скобки со всего этого - правильно. Но когда я это сделал, то получил тот же результат. Тем не менее хороший avdvice! Поскольку это была определенно ошибка.

Lutzel 25.05.2018 06:22

Этот ответ способствует внедрению SQL.

waterloomatt 28.05.2018 21:12

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