我已經使用PHP的舊MySQL庫了很多年了,我終於開始使用MySQLi了。預先準備好的陳述看起來非常有用,所以我試圖把它們掛出來。範圍和MySQLi綁定
現在,我創造了一些準備好的發言和約束力的全球性的參數,然後使用函數像這樣執行它們:
$stmt = $mysqli->prepare("INSERT ...");
$stmt->bind_param("ss", $var1, $var2);
function process($t) {
global $mysqli, $stmt;
$var1 = $t['var1'];
$var2 = $t['var2'];
$stmt->execute();
}
我遇到的問題是,執行功能運行進入一個變量仍然爲空的錯誤。在收集$t
的值時,我應該綁定/解除綁定嗎?
'bind_param()'需要變量引用,所以如果你把它叫做outisde函數,需要在函數內全局訪問'$ var1,$ var2'。函數內部的函數是局部範圍的,與外部綁定的變量不同。 – 2012-07-24 13:56:30
當然!我以爲MySQLi正在用'bind_param'做一些魔術 - 這裏還是相當早的,所以請原諒認知脹氣。 – actaeon 2012-07-24 14:02:53