Скрипт 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.");
}
?>
Возможный дубликат Как я могу предотвратить SQL-инъекцию в PHP?
Я посмотрел, но с существующим контентом, обеспечивающим эхо прямо перед отправкой запроса ... все выглядит нормально.
Пожалуйста, проверьте наличие ошибок - stackoverflow.com/a/17053489/296555
Ошибок нет :( Кажется, все работает без проблем. Но результат остается ложным.






Удалите цитату из id, если это int в базе данных. Ints не нуждаются в кавычках, это приведет к сбою запроса, и если $ tagNumber является int, удалите также одинарные кавычки. Надеюсь, поможет.
$sql = "INSERT INTO tags (id, tags, giveTake, onOff, tagNumber) VALUES (".$id.",'".$tags."','".$giveTake."','".$onOff."','".$tagNumber."')";
«Ints не нуждаются в кавычках, это вызовет сбой запроса», неправильная автоматическая рассылка MySQL и запрос не завершится ошибкой .. SQL-инъекция все еще существует в этом ответе
Проверьте это db-fiddle.com/f/3udvnfti7GHhmAUuGUB1W3/0, я не вижу сбоев MySQL прямо здесь.
Вы никогда не должны заключать числа в кавычки. Для этого есть веская причина. противоречивые результаты. Узнайте больше о приведении типов здесь. MySQL объясняет это stackoverflow.com/questions/6781976/mysql-quote-numbers-or-n ot.
Я поддерживаю вашу часть "ints не нужны кавычки" (если тип данных столбца также является int), поэтому вам не нужно защищать этот оператор ... Вот почему вы должны использовать подготовленные операторы и позволить драйверу делать кавычки за вас .
Запрос без кавычек не заставил запрос работать. Я согласен с тем, что снимать скобки со всего этого - правильно. Но когда я это сделал, то получил тот же результат. Тем не менее хороший avdvice! Поскольку это была определенно ошибка.
Этот ответ способствует внедрению SQL.
Научитесь использовать подготовленные операторы в PHP для предотвращения SQL-инъекций. (stackoverflow.com/questions/60174/…) Вы смешиваете процедурный api mysqli (mysqli_query) с OOP api (
new mysqli(...)), он должен работать в соответствии с документацией mysqli PHP, но это небрежный стиль программирования ... Вам нужно выполнить отладку с помощью функцииmysqli_error(), чтобы понять, почему она не работает.