我正在寻找使用 SQLSRV 生成最后插入的 id。不过,我需要使用准备好的语句。 我在这里看到了一个答案(参见下面代码后面的链接),显示了如何做到这一点,但该语句不是为反 sql 注入目的而准备的。
//Prep the variables for insert
$p1 = $_POST['description'];
$p2 = intval($_POST['visible']);
$p3 = strval($_POST['whoToShow']);
//Build an array with those variables
$params = array(&$p1, &$p2, &$p3);
//Build the SQL
$sql = "INSERT INTO notifications (description, visible, whoToShow) VALUES (?, ?, ?)";
//Execute the sql using a prepared statement, passing the variables in an array
$stmt = sqlsrv_prepare($conn, $sql, $params) or die(FormatErrors(sqlsrv_errors()));
请查看Microsoft 的 sqlsrv 驱动程序以了解在 Stack Overflow 上查询“SELECT SCOPE_IDENTITY() AS id”时未返回任何结果的 PHP 驱动程序,以获取有关使用未准备好的语句获取最后插入的 ID 的详细信息。
预先感谢您对我们的支持。