簡體   English   中英

SQL 服務器准備語句 PHP - 錯誤

[英]SQL Server prepared statement with PHP - Error

我正在嘗試使用 PHP 對 SQL 服務器執行准備好的語句。這是我的(部分)代碼:

$tsql = "INSERT INTO CLIDES
            (STTIPANA,
            STCODCLI,
            STCODDES,
            STRAGSO1,
            STRAGSO2)
        VALUES 
            ('C',
            ?,
            '0000000',
            ?,
            ?
            )";
$params = array(
    &$id_customer,
    &$name1,
    &$name2,
);
$stmt = sqlsrv_prepare($conn, $tsql, $params);
if (sqlsrv_execute($stmt)) {  
    echo "Statement executed.\n";  
} else {  
    echo "Statement could not be executed.\n";  
    print_r(sqlsrv_errors());
}

$conn 已正確定價(在此查詢之前還有另一個查詢並且工作正常)。

結果是一個錯誤和字符串

語句無法執行”。

Array ( [0] => 
    Array ( [0] => IMSSP 
            [SQLSTATE] => IMSSP 
            [1] => -16 
            [code] => -16 
            [2] => An invalid PHP type for parameter 1 was specified. 
            [message] => An invalid PHP type for parameter 1 was specified. 
        ) 
    )

使用以下循環

foreach ($params as $i => $v) {
    echo $i . " - " . $v . "<br>";
}

我可以讀取 3 個參數(和相對索引)。

我試過谷歌,但我不明白這個問題的原因。 有人可以幫我嗎?

問題是 3 個參數是對象(由於對 web 服務的特定調用)所以“回聲”很好(正確的字符串)但類型不是字符串。 浪費時間。 謝謝大家

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM