top
Loading...
Perl語言中向數據庫中寫值的特殊字符問題
我在編程中遇到過一些這樣的問題,就是其他任何操作都正常,但是,用戶在頁面上輸入的數據卻寫不到數據庫中去。后來,經過仔細的檢查,發現用戶輸入的數據中含有一些特殊字符,例如單引號、雙引 號等。
這時,可以采用DBI的quote方法進行處理。具體的處理過程如下:
舉例說明:
需要輸入數據庫的數據列名為city,值為Xi'an
use DBI;
my $dsn="DBI:mysql:$db_name:localhost";
my $dbh=DBI->connect($dsn,$db_user,$db_pass,{RaiseError=>1});

my $city=$dbh->quote("Xi'an");
$dbh->do(qq{insert into citylist values($city)});
$dbh->disconnect();

這樣,數據就可以順利的寫入數據庫了。
其實,quote方法的本質就是使用一種特殊的符號作為數值的分界符,避免和我們常用的特殊字符發生沖突,導致數據庫操作失敗。
北斗有巢氏 有巢氏北斗