我即将开始使用 mssql
和 php
构建网站。
但是,我打算使用 PDO,因为我目前认为它不可能使用命名参数。
目前在 MySQL
中,我会在查询中使用命名占位符;
$conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$sql = "SELECT *
FROM table
LIMIT :numRows";
$st = $this->conn->prepare( $sql );
$st->bindValue( ":numRows", $numRows, PDO::PARAM_INT );
但是当使用 MSSQL
时;
$conn = new PDO("mysql:host=" . DB_HOST .";dbname=" . DB_NAME, DB_USER, DB_PASSWORD);
$sSQLInsert = "SELECT TOP ? *
FROM table";
$aParams = array($iLimit);
$st = sqlsrv_query($dbhandle, $sSQLInsert, $aParams)){}
当我有很多参数需要绑定(bind)时,我的担心就出现了。管理它们的顺序并在查询参数之间来回切换似乎并不理想。
所以我的问题;是否可以在 MSSQL
中使用命名占位符?
最佳答案
这将是一个用于编写支票的简单脚本,但是我找到了文档和示例!答案是肯定的!名称参数适用于 PDO_MSSQL。
https://msdn.microsoft.com/en-us/library/ff628166(v=sql.105).aspx
$stmt = null;
$contact = "Sales Agent";
$stmt = $conn->prepare("select * from Person.ContactType where name = :contact");
$stmt->bindParam(':contact', $contact);
$contact = "Owner";
$stmt->execute();
关于PHP + MSSQL 使用命名参数不是 '?' 的 PDO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31247631/