Rumah >pembangunan bahagian belakang >tutorial php >详解PHP中的PDO::quote(附代码实例)

详解PHP中的PDO::quote(附代码实例)

autoload
autoloadasal
2021-04-25 13:10:132340semak imbas

  2021041911412313610.jpg  

    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 = &#39;Nice&#39;;
    print "Unquoted string: $string";
    echo "<br>";
    print "Quoted string: " . $pdo->quote($string) . "\n";
}catch(PDOException $e){
    echo $e->getMessage();
}
输出:连接成功
    Unquoted string: Nice
    Quoted string: &#39;Nice&#39;

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 = &#39;Naughty \&#39; string&#39;;
    print "Unquoted string: $string";
    echo "<br>";
    print "Quoted string:" . $pdo->quote($string);
    }
输出:连接成功
Unquoted string: Naughty &#39; string
Quoted string:&#39;Naughty \&#39; string&#39;

推荐:2021年PHP面试题大汇总(收藏)》《php视频教程

Atas ialah kandungan terperinci 详解PHP中的PDO::quote(附代码实例). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn