我已经使用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