Хранить SQL в базе данных MySQL - PullRequest
0 голосов
/ 10 ноября 2011

Мой технический блог не получился хорошим началом, так как Wordpress не сохранил бы мой пост, содержащий PHP, HTML и SQL-код.Мне придется изменить методы очистки Wordpress или развернуть мою собственную базовую платформу для ведения блогов, но как правильно и безопасно хранить технический текст с этим видом контента в базе данных MySQL?

1 Ответ

0 голосов
/ 10 ноября 2011

Я полагаю, вы используете 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...