PHP 和 MySQL 表单提交

标签 php mysql forms mysqli

在这段代码中,我应该将 mysqli_real_escape_string() 放在哪里?

或者,如果您有更好的方法来编写整个 block ,我很想听听。

<?php 
$title = ($_POST["title"]); 
$date = ($_POST["date"]); 
$content = ($_POST["content"]); 

$query = "INSERT INTO months ("; 
$query .= " title, date, content "; 
$query .= ") VALUES ("; 
$query .= " '{$title}', '{$date}', '{$content}' "; 
$query .= ")"; 
mysqli_query($connection, $query); ?>

最佳答案

最好使用准备好的语句。

$stmt = mysqli_prepare($connection, "INSERT INTO months (title, date, content) 
                                VALUES(?, ?, ?)");

mysqli_stmt_bind_param($stmt, "sss", $title, $date, $content);
$title = $_POST["title"]; 
$date = $_POST["date"]; 
$content = $_POST["content"]; 
mysqli_stmt_execute($stmt);

当使用转义函数和字符串连接时,仍然可能存在 SQL 注入(inject)的情况。准备好的语句的工作方式不同,因此它们可以安全地防止 SQL 注入(inject)。 https://stackoverflow.com/a/60496/3595565

关于PHP 和 MySQL 表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38682424/

相关文章:

php sleep 与 bash sleep

MySQL: ', `、´ 和 "之间的区别

java - JSP/Servlets : How do I Upload a zip file, 解压缩并提取 CSV 文件

forms - 在 Drupal 6 中向管理员添加系统变量的编辑功能

php - 如何使用 OOP 动态构建 PHP 表单?

php - 带参数的 Laravel 路由链接不起作用

mysql - Centos启动时不自动启动MySql

c# - 禁用图片框上的图片混合(Windows 窗体 c#)

javascript - 用图像代替 radio

php - 合并具有相同绑定(bind)参数的两个查询