Я пытаюсь создать простой веб-интерфейс для своей базы данных и использую подготовленные операторы, потому что они должны предотвращать атаки с использованием SQL-инъекций. В любом случае, моя проблема заключается в том, что если я введу в форму одинарные или двойные кавычки и отправлю их, то они будут введены в базу данных, которой предшествует обратный слеш, который также распечатывается вместе с ними, когда элементы выбираются из базы данных.
Итак, как мне ввести буквенную кавычку в базу данных, не получая предшествующую обратную косую черту из-за оператора prepare? Приветствия.
<?php
$heading = $_POST['heading'];
$story = $_POST['story'];
$mysqli = new mysqli('localhost',$username,$password,'mydb');
if ($mysqli->connect_errno)
echo "Failed to connect: Error (".$mysqli->connect_errno.") ".$mysqli->connect_error;
if ( !$stmt = $mysqli->prepare('INSERT INTO news (heading,story) VALUES (?,?)') )
echo "Prepare failed: Error (".$mysqli->errno.") ".$mysqli->error;
if ( !$stmt->bind_param('ss',$heading,$story) )
echo "Binding paramaters failed: (".$stmt->errno.") ".$stmt->error;
if (!$stmt->execute())
echo "Execute failed: (".$stmt->errno.") ".$stmt->error;
$stmt->close();
?>