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'
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)