我想转义洋红色中的字符串,但是当我使用 mysql_real_escape_string
时,我收到警告。
警告:mysql_real_escape_string() [function.mysql-real-escape-string]:无法连接到本地 MySQL 服务器通过套接字'/var/lib/mysql/mysql.soc....."
我找不到任何洋红色的核心 mysql 转义函数。那么,我该怎么办?
使用它来转义查询的字符串并添加周围的单引号:
Mage::getSingleton('core/resource')->getConnection('default_write')->quote($string);
如果需要,您可以查找Varien_Db_Adapter_Pdo_Mysql
以获取进一步的报价详细信息。
我认为Magento使用基于PDO的数据库访问层,只要您使用绑定参数,它会自动处理转义。 使用Magento方法编写插入查询的示例,并注意SQL注入
$write = Mage::getSingleton("core/resource")->getConnection("core_write");
// Concatenated with . for readability
$query = "insert into mage_example "
. "(name, email, company, description, status, date) values "
. "(:name, :email, :company, :desc, 0, NOW())";
$binds = array(
'name' => "name' or 1=1",
'email' => "email",
'company' => "company",
'desc' => "desc",
);
$write->query($query, $binds);