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.