这里需要注意的一点是 - 不知道是否适用于所有 DB2 安装,我知道我使用的是一个过时的安装,但我的 DB2 安装需要用 ' 来引用而不是用斜杠。
这意味着此函数对于提取字符串中的撇号 ' 无用,因为它会添加一个 DB2 会忽略的斜杠。
您需要使用诸如 str_replace 之类的工具将 ' 替换为 ''。
(PECL ibm_db2 >= 1.6.0)
db2_escape_string — 用于转义某些字符
string_literal
包含需要修改的特殊字符的字符串。在前面添加反斜杠的字符是 \x00
、\n
、\r
、\
、'
、"
和 \x1a
。
返回 string_literal
,其中上面提到的特殊字符前面添加了反斜杠。
范例 #1 一个 db2_escape_string() 的示例
使用 db2_escape_string() 函数的结果
<?php
$conn = db2_connect($database, $user, $password);
if ($conn) {
$str[0] = "所有字符: \x00 , \n , \r , \ , ' , \" , \x1a .";
$str[1] = "反斜杠 (\). 单引号 ('). 双引号 (\")";
$str[2] = "空字符 \0 必须也进行引用";
$str[3] = "有趣的字符: \x1a , \x00 .";
$str[4] = "无需引用";
$str[5] = 200676;
$str[6] = "";
foreach( $str as $string ) {
echo "db2_escape_string: " . db2_escape_string($string). "\n";
}
}
?>
上面的示例将输出
db2_escape_string: All characters: \0 , \n , \r , \\ , \' , \" , \Z . db2_escape_string: Backslash (\\). Single quote (\'). Double quote (\") db2_escape_string: The NULL character \0 must be quoted as well db2_escape_string: Intersting characters: \Z , \0 . db2_escape_string: Nothing to quote db2_escape_string: 200676 db2_escape_string: