PHP - HTML输入字符串在MySQL中存储为转义序列字符串

时间:2016-07-27 13:11:00

标签: php html mysql escaping magic-quotes

我有使用HTML,PHP,MySQL的基本网站。

HTML输入:

C# - Developer's Guide "LIMITED EDITION"

变为

在PHP中:

C# - Developer\'s Guide \"LIMITED EDITION\"

在MySQL中:

C# - Developer\'s Guide \"LIMITED EDITION\"

在PHP中我使用:

if(empty($_POST['book_title'])) {
    $errors['book_title'] = TRUE;
} else {
    $book_title = mysqli_real_escape_string($link, trim($_POST['book_title']));
}

$query1 = "INSERT INTO book(title) VALUES(?)";
if(!$errors && mysqli_stmt_prepare($stmt,$query1))
{
  mysqli_stmt_bind_param($stmt, "s", $book_title) or die("Bind param failed");
  if(!mysqli_stmt_execute($stmt)) {
    $errors['table_book'] = TRUE;
  }
} else {
  $errors['table_book'] = TRUE;
}

编辑:   magic_quotes被关闭。我使用的是PHP 7.0.3。

如何在PHP和MySQL中获取我的HTML输入?

什么是magic_quotes(我在博客上的某个地方听说过)它能帮到我吗?

问我如果您需要任何其他信息。帮助我。

1 个答案:

答案 0 :(得分:0)

正如'Phil'在上面的评论和其他SO查询中所建议的(当'我应该使用带有预备语句的mysqli_real_escape_string'时),

仅使用预备声明而不是 mysqli_real_escape_string()两者的组合