PHP、ODBC 和 SQL 注入

The*_*ith 0 php sql sql-server odbc

当使用 ODBC 连接到 MS SQL Server 时,如何防止 SQL 注入? 由于 unixODBC 错误odbc_prepare()而不起作用(请参阅我的未解决问题),并且 ODBC 也没有_escapeor_quote功能。

此外,PDO 有一个糟糕的、6 年前的错误,如果结果在任何列中返回 NULL ,整个结果集将返回 null(至少当通过 ODBC 连接到 MSSQL 时)。

那么我可以做些什么来防止 SQL 注入呢?

小智 6

尽管这是一个古老的问题并且odbc_prepare()几乎已被弃用。

您应该做的是改用 PDO:

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Use the MSSQL driver's native prepared statements.
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
Run Code Online (Sandbox Code Playgroud)

这应该有效。