0
我有以下功能爲以下工作正常:無法傳遞名作爲參數傳遞給函數Php SQL當搜索用戶
function searchForRecordInUserTableUsername ($connection){
$sql ="SELECT ID FROM UserTable WHERE Username='WILL'";
$stmt = sqlsrv_query($connection, $sql);
if($stmt) {
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_NUMERIC)) {
echo $row[0];
}
sqlsrv_free_stmt($stmt);
}
else {die(print_r(sqlsrv_errors(), true)); }
}
不過,我需要能夠通過用戶名是對函數作爲參數,因爲它取決於用戶輸入。但是,我似乎無法使其發揮作用。以下是我已經嘗試了以下功能:
function searchForRecordInUserTableUsername ($username, $connection){
$sql ="SELECT ID FROM UserTable WHERE Username=(?)";
$params = $username;
$stmt = sqlsrv_query($connection, $sql, $params);
if($stmt) {
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_NUMERIC)) {
echo $row[0];
}
sqlsrv_free_stmt($stmt);
}
else {die(print_r(sqlsrv_errors(), true)); }
}
而且我自己也嘗試:
function searchForRecordInUserTableUsername ($username, $connection){
$sql ="SELECT ID FROM UserTable WHERE Username=$username";
$stmt = sqlsrv_query($connection, $sql);
if($stmt) {
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_NUMERIC)) {
echo $row[0];
}
sqlsrv_free_stmt($stmt);
}
else {die(print_r(sqlsrv_errors(), true)); }
}
並調用函數時,我已經把用戶名單打報價,雙引號和沒有引號,它似乎沒有任何區別。
以下是我正在錯誤的一個示例:
陣列([0] =>數組([0] => 42S22 [SQLSTATE] => 42S22 [1] => 207 [代碼] => 207 [2] => [Microsoft] [用於SQL Server的ODBC驅動程序11] [SQL Server]無效的列名稱'WILL'[message] => [Microsoft]服務器]列名'WILL'無效))
有誰知道我要去哪裏錯?