0

pdo 接続にいくつかの属性を設定しようとしています。SQL Server に接続している odbc ドライバーを使用していますが、不明な属性が表示されます。

$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 に設定したいので、ここで読んだのは、準備機能を使用するときに SQL インジェクションを停止する安全な方法です。

4

2 に答える 2

0

安全にするために、準備されたステートメントを使用する必要があります。
EMULATE_PREPARES はセキュリティとは無関係であり、いずれにしても安全です。

また、ドライバーでサポートされている設定のみを使用する必要があります。

于 2013-06-18T08:46:26.207 に答える
0

Linux から MSSQL への準備済みステートメントを使用することはできません。プロダクション コードを Windows にデプロイし、PDO SQLSRV ドライバーを使用するか、プリペアド ステートメントを使用しないでください (基本的に、Unicode を使用できないことを意味します)。

于 2014-06-18T12:10:51.667 に答える