Php 负责更换';以字符串形式使用sql
我正在做一件简单的事情来使用我的php知识,并学习它和它的工作迄今为止,但我遇到了一个问题,当字符串有'在它。我明白它为什么要这么做,我知道有办法,但我找不到这个问题的具体答案Php 负责更换';以字符串形式使用sql,php,mysql,sql,Php,Mysql,Sql,我正在做一件简单的事情来使用我的php知识,并学习它和它的工作迄今为止,但我遇到了一个问题,当字符串有'在它。我明白它为什么要这么做,我知道有办法,但我找不到这个问题的具体答案 <?php if (isset($_POST['submit'])){ $title = $_POST['title']; $text = $_POST['text']; $connection = mysqli_connect('localhost','root','','blog');
<?php
if (isset($_POST['submit'])){
$title = $_POST['title'];
$text = $_POST['text'];
$connection = mysqli_connect('localhost','root','','blog');
if (strpos($text,"\'") !== false){
str_replace("\'","\'",$text);
}
$query = "INSERT INTO `posts`(`title`, `text`) VALUES ('".$title."', '".$text."')";
$result = mysqli_query($connection,$query);
if (!$result){
die("error" . mysqli_error($connection));
} else {
header("Location:http://localhost/blog-testing/");
die();
}
}
如果使用绑定查询,它会自动保护您不受数据中的引号和数据的影响
使用参数。不要用文字值来表示查询。你应该使用预处理语句**来防止**sql喷射++请仔细阅读如果你使用预处理和绑定的参数化查询,你就再也不用担心数据中的引号了
<?php
$connection = mysqli_connect('localhost', 'root', '', 'blog_test');
if ($connection){
echo "connection success";
} else {
echo "connection failure";
}
$query ="INSERT INTO `text-test` (`title`, `content`) VALUES (?,?)";
$stmt = $connection->prepare($query);
$stmt->bind_param('ss',$_POST['title'], $_POST['text']);
$result = $stmt->execute();
if (!$result){
//die("Query failed" . mysqli_error());
//Dont die(), report an error into a log file
} else {
header( "Location: http://localhost/blog-testing/");
exit;
}