php - 如何将用户输入的撇号存储到 MySQL 数据库中?

标签 php mysql

<分区>

我有一个简单的评论页面,用户在文本区域中输入文本,然后点击评论按钮将评论发送到 php 页面:

<?php
$reply = strip_tags($_POST['reply']);
$comment_id = strip_tags($_POST['id']);
$id = strip_tags($_POST['user_id']);
$date = strip_tags($_POST['date']);
$time = strip_tags($_POST['time']);
$server_root = "./";
if(file_exists("{$server_root}include-sql/mysql.class.php"))
{
    include_once("{$server_root}include-sql/mysql.class.php");
}
include_once("{$server_root}config.php");
$db1;
$db1 = new db_mysql($conf['db_hostname'],
                    $conf['db_username'],
                    $conf['db_password'],
                    $conf['db_name']);
$db1->query("SET NAMES utf8");
$current_server_date =  date('Y-m-d H:i:s');// Your local server time
date_default_timezone_set('Asia/Istanbul');
$current_pc_date = date('Y-m-d H:i:s'); 
$sql = $db1->query(
    'INSERT INTO replies1 (reply, comment_id, date, time, timestamp, user_id) 
    VALUES ("$reply", $comment_id, "$date", "$time", "$current_pc_date", $id)');
?>

问题是:当用户输入任何带有撇号的评论时,它不会将其存储在数据库中?为什么会这样?我的代码有问题吗?我添加了双引号和 stripe_tags 的所有内容。?我错过了什么吗?

最佳答案

您应该使用 mysqli_real_escape_string() 转义所有直接来自用户的输入! 否则它不仅不能正常工作,而且对黑客攻击也非常不安全。 (mysql 注入(inject))

关于php - 如何将用户输入的撇号存储到 MySQL 数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21704781/

相关文章:

php - 语法高亮显示,语法不区分大小写

php - Client-Server-Communication with php and android

php - 密码作为参数显示在堆栈跟踪中

MySQL Select from UNION 性能问题(杀死数据库)

mysqlimport 使用转储

php - 查询从多个表中获取数据 MySQL

PHP - 大写的单个元素

java - Tomcat 因大量请求而挂起

如果用户名/电子邮件错误,PHP 不会执行任何操作

php - 如何使用 PHP 将 mdb 文件转换为 mysql 文件或 mysql 命令?