Я полагаю, вы используете php.
Лучше всего использовать PDO, см .: http://www.php.net/manual/en/pdo.prepare.php
С этого сайта
Пример # 1 Подготовка оператора SQL с именованными параметрами
<?php
/* Execute a prepared statement by passing an array of values */
$sql = 'SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':colour' => 'yellow'));
$yellow = $sth->fetchAll();
?>
Пример # 2. Подготовить оператор SQL с параметрами вопросительного знака
<?php
/* Execute a prepared statement by passing an array of values */
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'yellow'));
$yellow = $sth->fetchAll();
?>
В качестве альтернативы используйте экранирование
Используйте mysql_real_escape_string()
для экранирования значений перед их вставкой в запрос.
$val1 = mysql_real_escape_string($_POST['value1']);
$query = "SELECT a,b,c FROM table1 WHERE a = '$val1' ";
// the quotes are essential ^ ^
Вывод кода в виде кода
При выводе контента используйте:
echo "the output is: ".htmlentities($output);