Различные вопросы по PHP и MySQL

243K
.
# Koenig (11.05.2015 / 14:09)
подготовленные выражения не экранируют данные, я бы специально экранировал, потом будет меньше проблем с мускулдампом
Не данные, а ключевые слова (имена таблиц, полей). Данные за плейсхолдерами они как раз экранируют.
.
(\/)____o_O____(\/)
Swank, PDO::quote
можешь проверить через пма, так как я проверял на mysqli
.
(\/)____o_O____(\/)
L!MP, имена полей баз и тд ведь нельзя в плэйсхолдеры же загонять
.
Swank
Сексуальность валенка
L!MP, Так мне всеже не надо не чего экранировать?
.
(\/)____o_O____(\/)
Swank, проверь через пма, записать так и так
.
Swank, данные которые вставляются в запрос по плейсхолдерам не нужно экранировать. Они экранируются самим PDO.

$stmt = $pdo->prepare('select * from users where id = ?');
$stmt->execute([$user_id]);
.
Swank
Сексуальность валенка
Limp, спасибо, понял
.
(\/)____o_O____(\/)
Swank, сам проверю
.
(\/)____o_O____(\/)
L!MP, провел тест, prepare не экранирует
$db_host = 'localhost'; 
$db_user = 'root'; 
$db_pass = ''; 
$db_name = 'annimon'; 
$db_charset = 'utf8';


try
{
  $dbh = new PDO('mysql:host=' . $db_host . ';dbname=' . $db_name, $db_user ,$db_pass);
  echo 'Connected';
}
catch (Exception $e)
{
  echo 'Unable to connect: ' . $e->getMessage();
}

$sth = $dbh->prepare("INSERT INTO `forum` SET `refid` = ?, `type` = ?, `time` = ?, `user_id` = ?, `from` = ?, `ip` = ?, `soft` = ?, `text` = ?");
$refid = 6787;
$type = 'm';
$time = time();
$user_id = 1314;
$from = 'Koenig';
$ip = $_SERVER['SERVER_ADDR'];
$soft = $_SERVER['HTTP_USER_AGENT'];
$text = '
' . $dbh->quote(file_get_contents('test.html') . '
'); $sth->execute(array($refid, $type, $time, $user_id, $from, $ip, $soft, $text)); $text = '
' . file_get_contents('test.html') . '
'; $sth->execute(array($refid, $type, $time, $user_id, $from, $ip, $soft, $text));
Прикрепленные файлы:
.
(\/)____o_O____(\/)
prepare спасает от инъекций, так как неэкранированные данные уже подставляются в заготовленный шаблон, потому экранирование не нужно, как не крути оно воткнет все что написали
Всего: 7969