У меня возникла проблема с апострофами, введенными в текстовое поле области сообщений. Я получаю сообщение об ошибке, что используется неправильный синтаксис и проверяется руководство по mysql для правильного синтаксиса. Ниже приведена точная ошибка.
Ошибка MySQL: 1064 (у вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса, используемого рядом с "m", только чтобы убедиться, что вы получили свою бесплатную загрузку. Если нет, вот "в строке 5"
Я проверил свой хостинг, но они не могут мне помочь. Я позвонил и по электронной почте разработчик программного обеспечения автоответчика, но они не отвечают. (позже выяснилось, почему, со всеми жалобами на них). Я искал в Интернете и нашел некоторые сайты, как этот, но я понятия не имею, как настроить строку или куда ее поместить.
Пожалуйста, помогите. Благодаря, Дениз
Попробуйте использовать два апострофа для каждого апострофа. Если это работает, замените его на проверку до того, как база данных будет обработана sql.
Если вы используете PHP, сделайте свой пост или получите переменные в безопасности и подтвердите sql, используя "mysql_real_escape_string
". Это сделает вашу строку безопасной от "SQL Injection too"
<?php
if (isset($_POST['product_name']) && isset($_POST['product_description']) && isset($_POST['user_id'])) {
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');
if(!is_resource($link)) {
echo "Failed to connect to the server\n";
// ... log the error properly
} else {
// Reverse magic_quotes_gpc/magic_quotes_sybase effects on those vars if ON.
if(get_magic_quotes_gpc()) {
$product_name = stripslashes($_POST['product_name']);
$product_description = stripslashes($_POST['product_description']);
} else {
$product_name = $_POST['product_name'];
$product_description = $_POST['product_description'];
}
// Make a safe query
$query = sprintf("INSERT INTO products (`name`, `description`, `user_id`) VALUES ('%s', '%s', %d)",
mysql_real_escape_string($product_name, $link),
mysql_real_escape_string($product_description, $link),
$_POST['user_id']);
mysql_query($query, $link);
if (mysql_affected_rows($link) > 0) {
echo "Product inserted\n";
}
}
} else {
echo "Fill the form properly\n";
}
?>
'
''
- это начало, но недостаточно.