PHP+;Mysql:如何插入包含“的数据”';(分号、单引号和双引号)

PHP+;Mysql:如何插入包含“的数据”';(分号、单引号和双引号),php,mysql,Php,Mysql,有时候,当你有这些东西的时候,它很糟糕;“'(分号、单引号和双引号)字符串中的所有内容 问题很简单,将这些刺痛发送到数据库的最简单方法是什么 base64_encode(); base64_decode(); // Is not an option. I need to keep those data just same as it is. 你需要 addslashes('your text') // in your php page 你需要 addslashes('your text')

有时候,当你有这些东西的时候,它很糟糕;“'(分号、单引号和双引号)字符串中的所有内容

问题很简单,将这些刺痛发送到数据库的最简单方法是什么

base64_encode();
base64_decode();
// Is not an option. I need to keep those data just same as it is.
你需要

addslashes('your text') // in your php page
你需要

addslashes('your text') // in your php page

使用mysqli\u real\u escape\u字符串

$someText = mysqli_real_escape_string($con,"It's a test.");

其中$con是数据库连接变量。

使用mysqli\u real\u escape\u字符串

$someText = mysqli_real_escape_string($con,"It's a test.");
其中$con是您的数据库连接变量。

是对数据库执行SQL查询的最佳解决方案,该查询的值带有单引号/双引号…但更重要的是,PDO语句有助于防止SQL注入

为了向您展示这是如何工作的,这个非常简单的示例让您基本了解PDO语句是如何工作的。这个示例所做的只是连接到数据库,并将用户名、电子邮件和密码插入到users表中

<?php
// START ESTABLISHING CONNECTION...
 $dsn = 'mysql:host=host_name_here;dbname=db_name_here';
 //DB username
 $uname = 'username_here';
 //DB password
 $pass = 'password_here';

 try
     {

     $db = new PDO($dsn, $uname, $pass);

     $db->setAttribute(PDO::ERRMODE_SILENT, PDO::ATTR_EMULATE_PREPARES);
     error_reporting(0);
     } catch (PDOException $ex)
     {
     echo "Database error:" . $ex->getMessage();
     }

// END ESTABLISHING CONNECTION - CONNECTION IS MADE.


 $username = $_POST['username'];
 $email = $_POST['email'];
 $password = $_POST['password'];
 $hashed_password = password_hash($password, DEFAULT_BCRYPT);

 //Validation on inputs here...

 // Your SQL query... here is a sample one.
 $query = "INSERT INTO users (userName, email, password) VALUES (:userName, :email, :password)";

 $statement = $db->prepare($query);
 // The values you wish to put in.
 $statementInputs = array("userName" => $username, "email" => $email, "password" => $hashed_password);

 $statement->execute($statementInputs);
 $statement->closeCursor();
?>

您可以将建立连接部分放在一个单独的文件中,并要求使用该文件一次,以避免一次又一次地编写相同的代码来建立与数据库的连接。

是对数据库执行SQL查询的问题的最佳解决方案,该查询的值带有单引号/双引号…但更重要的是,PDO语句有助于防止SQL注入

base64_encode();
base64_decode();
// Is not an option. I need to keep those data just same as it is.
为了向您展示这是如何工作的,这个非常简单的示例让您基本了解PDO语句是如何工作的。这个示例所做的只是连接到数据库,并将用户名、电子邮件和密码插入到users表中

<?php
// START ESTABLISHING CONNECTION...
 $dsn = 'mysql:host=host_name_here;dbname=db_name_here';
 //DB username
 $uname = 'username_here';
 //DB password
 $pass = 'password_here';

 try
     {

     $db = new PDO($dsn, $uname, $pass);

     $db->setAttribute(PDO::ERRMODE_SILENT, PDO::ATTR_EMULATE_PREPARES);
     error_reporting(0);
     } catch (PDOException $ex)
     {
     echo "Database error:" . $ex->getMessage();
     }

// END ESTABLISHING CONNECTION - CONNECTION IS MADE.


 $username = $_POST['username'];
 $email = $_POST['email'];
 $password = $_POST['password'];
 $hashed_password = password_hash($password, DEFAULT_BCRYPT);

 //Validation on inputs here...

 // Your SQL query... here is a sample one.
 $query = "INSERT INTO users (userName, email, password) VALUES (:userName, :email, :password)";

 $statement = $db->prepare($query);
 // The values you wish to put in.
 $statementInputs = array("userName" => $username, "email" => $email, "password" => $hashed_password);

 $statement->execute($statementInputs);
 $statement->closeCursor();
?>


您可以将建立连接部分放在一个单独的文件中,并要求_一次创建该文件,以避免必须反复编写相同的代码来建立与数据库的连接。

使用类似PDO和bind变量的内容。在插入数据库之前使用转义字符串…您可以使用
addslashes()
处理插入数据库时的单引号和双引号。将准备好的语句与PDO或mysqli函数一起使用。它们不仅可以正确转义特殊字符,而且有助于防止SQL注入攻击。使用类似PDO和绑定变量的内容。在插入数据库之前使用转义字符串……您可以使用
addslahes()
处理插入数据库的单引号和双引号。将准备好的语句与PDO或mysqli函数一起使用。它们不仅可以正确转义特殊字符,而且有助于防止SQL注入攻击。
base64_encode();
base64_decode();
// Is not an option. I need to keep those data just same as it is.