Phpmyadmin Синтаксис MySQL [закрыт]

1

Если значение, подобное этому значению: 's-Gravenhage, будет отправлено в мою базу данных

Тогда форма не отправляется, и я вижу ошибку:

Ошибка: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного синтаксиса для использования рядом с 's-Gravenhage': '', '', '', '', '0', '0', '0', '', '', '', '', '19.05. ' по строке 2

Другие значения без: - и " нет проблем!

Я думаю, это потому, что "и -

Как я могу исправить это в phpmyadmin?

Итак, это send.php (для формы действия)

$link = mysql_connect (DB_HOST, DB_USER, DB_PASSWORD); 

if (!$link) { 
die('Could not connect: ' . mysql_error()); 
} 

$db_selected = mysql_select_db(DB_NAME, $link); 

if (!$db_selected) { 
die('Can\'t use ' . DB_NAME . ': ' . mysql_error()); 
} 



$value = $_POST['firstname']; 
$value2 = $_POST['lastname']; 
$value3 = $_POST['city']; 


$sql = "INSERT INTO orders (firstname, lastname, city)
VALUES ('$value', '$value2', '$value3'')";



if (!mysql_query($sql)) { 
die('Error: ' . mysql_error());
  • 0
    Вы должны избежать вашего ввода. Смотрите здесь stackoverflow.com/questions/2687866/…
  • 0
    Большое спасибо, но куда мне нужно поместить функцию mysql_real_escape_string ()?
Показать ещё 2 комментария
Теги:
forms

1 ответ

0
Лучший ответ

См. Пересмотренный код ниже. Каждый вход должен быть подвергнут санированию перед использованием в запросе. Это также по соображениям безопасности. Подробнее об этом читайте здесь https://www.owasp.org/index.php/SQL_Injection

$link = mysql_connect (DB_HOST, DB_USER, DB_PASSWORD); 

if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 

$db_selected = mysql_select_db(DB_NAME, $link); 

if (!$db_selected) { 
    die('Can\'t use ' . DB_NAME . ': ' . mysql_error()); 
} 

$value = mysql_real_escape_string($_POST['firstname']); 
$value2 = mysql_real_escape_string($_POST['lastname']); 
$value3 = mysql_real_escape_string($_POST['city']); 

$sql = "INSERT INTO orders (firstname, lastname, city) VALUES ('$value', '$value2', '$value3')";

if (!mysql_query($sql)) { 
    die('Error: ' . mysql_error());
}
  • 0
    Вау, спасибо большое! Оно работает! Да благословит тебя Бог! Хорошего дня, Джордж! Byee
  • 0
    Нет проблем, и добро пожаловать в Stack Overflow

Ещё вопросы

Сообщество Overcoder
Наверх
Меню