Я новичок в программировании на PHP и базе данных и пытаюсь добавить данные из формы в базу данных MySQL. Он отлично работает, но открыт ли он для моей MySQL-инъекции? Я читал много учебников, и я думаю, что подготовленные заявления PDO. Как я могу это сделать для моего поля комментариев, например? Это поле (это текстовое поле) будет достаточно открытым для того, что пользователь хочет поставить. Как я могу написать это, чтобы сделать его более безопасным?Как я могу сделать эту вставку безопасной от MySQL-инъекции?
<?php
ob_start();
$username = 'name';
$password = 'pass';
$host = 'localhost';
$dbname = 'map';
try {
$dbh = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO Incidents (
protocol,
jurisdiction,
date,
time,
comments,
video,
lat,
lng
)
VALUES (
'".$_POST["protocol"]."',
'".$_POST["jurisdiction"]."',
'".$_POST["date"]."',
'".$_POST["time"]."',
'".$_POST["comments"]."',
'".$_POST["video"]."',
'".$_POST["lat"]."',
'".$_POST["lng"]."'
)
";
// use exec() because no results are returned
$dbh->exec($sql);
header("Location: map1.php");
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$dbh = null;
ob_end_flush();
?>
см это: http://stackoverflow.com/questions/7043303/php-mysql-injection-protection –