php入门到就业线上直播课:进入学习
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用
PHP在连接数据库时,可能需要为SQL
语句中的字符串添加引号,为了解决这一问题,我们可以使用PHP的内置函数quote()
函数,本文就带大家来看一看。
首先来看一看quote()
函数的语法:
public PDO::quote ( string $string , int $parameter_type = PDO::PARAM_STR ) : string
$string:要添加引号的字符串。
$parameter_type:为驱动提示数据类型,以便选择引号风格。
返回值:返回加引号的字符串,理论上可以安全用于 SQL
语句。 如果驱动不支持这种方式,将返回 false
。
代码实例:
1.普通字符串加引号
<?php
$servername = "localhost";
$username = "root";
$password = "root123456";
$dbname = "my_database";
try {
$pdo = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
echo "连接成功"."<br>";
// $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);
$string = 'Nice';
print "Unquoted string: $string";
echo "<br>";
print "Quoted string: " . $pdo->quote($string) . "\n";
}catch(PDOException $e){
echo $e->getMessage();
}
输出:连接成功
Unquoted string: Nice
Quoted string: 'Nice'
2 危险字符串加引号
<?php
$servername = "localhost";
$username = "root";
$password = "root123456";
$dbname = "my_database";
try {
$pdo = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
echo "连接成功"."<br>";
// $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);
$string = 'Naughty \' string';
print "Unquoted string: $string";
echo "<br>";
print "Quoted string:" . $pdo->quote($string);
}
输出:连接成功
Unquoted string: Naughty ' string
Quoted string:'Naughty \' string'