perl向数据库中插入一段文章,遇到sql错误,发现输入的数据中含有一些特殊字符,例如单引号、双引号、$等特殊字符。
注意:php的函数是addslashes(),perl里对应函数是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方法的本质就是使用一种特殊的符号作为数值的分界符,避免和我们常用的特殊字符发生冲突,导致数据库操作失败。