我正在尝试为我的pdo连接设置一些属性,我正在使用连接到SQL Server的odbc drvier,我得到了未知属性
$db = new PDO("odbc:Driver={SQL Server};Server=127.0.0.1;Database=my_db;charset=utf8; Uid=my_usser;Pwd=my_pass;");
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
print_r($db->errorinfo());
//It show me: Array ( [0] => 00000 [1] => 0 [2] => Unknown Attribute (setAttribute[0] at (null):0) [3] => IM001 )
我想将PDO :: ATTR_EMULATE_PREPARES设置为false因为我在这里阅读是一种在使用prepare functiom时停止sql注入的安全方法。
答案 0 :(得分:0)
您必须使用预备声明才能确保安全 虽然EMULATE_PREPARES与安全性和安全无关。
此外,您只需使用驱动程序支持的设置。
答案 1 :(得分:0)
无法使用从Linux到MSSQL的预准备语句。在Windows上部署生产代码并使用PDO SQLSRV驱动程序,或者不使用预准备语句(这基本上意味着您不能使用Unicode)。