- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图将可变数量的参数传递给类的方法。这是我试图调用的类的函数:
class DbHelper{
....
public function Execute($query, $params){
$this->open();
$stmt = $this->mysqli->prepare($query) or die($this->mysqli->error);
call_user_func_array(array($stmt, 'bind_param'), $params); // 1
return $stmt->execute() ? $stmt->num_rows : 'ERROR';
}
....
}
....
$conn = new DbHelper();
$params = array('ss', $ID, $i);
$conn->Execute('INSERT INTO some_table (ID, `Index`) VALUES (?,?)', $params);
....
Warning: Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given in ..mypath..\dbhelper.php on line
call_user_func_array(array($stmt, 'bind_param'), refValues($params));
function refValues($arr){
if (strnatcmp(phpversion(),'5.3') >= 0){ //Reference is required for PHP 5.3+
$refs = array();
foreach($arr as $key => $value)
$refs[$key] = &$arr[$key];
return $refs;
}
return $arr;
}
$conn->Execute('INSERT INTO some_table (ID, `Index`) VALUES (?,?)', &$params); // 2
Deprecated: Call-time pass-by-reference has been deprecated in ..mypath..\save.php on line
DbHelper::Execute
尝试了这个定义:
public function Execute($query, $params){
$this->open();
$stmt = $this->mysqli->prepare($query) or die($this->mysqli->error);
$stmt->{'bind_param'}($params); // 3
return $stmt->execute() ? $stmt->num_rows : 'ERROR';
}
Warning: Wrong parameter count for mysqli_stmt::bind_param() in ..mypath..\dbhelper.php on line
最佳答案
给你建议的功能需要接受$params
也通过引用。这是一个稍微更新的版本:
function refValues(&$arr)
{
//Reference is required for PHP 5.3+
if (strnatcmp(phpversion(),'5.3') >= 0)
{
$refs = array();
foreach(array_keys($arr) as $key)
{
$refs[$key] = &$arr[$key];
}
return $refs;
}
return $arr;
}
关于php - 如何使用 call_user_func_array 调用 mysqli_stmt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13570957/
第一次尝试处理这个 call_user_func_array,但有些东西不起作用,因为我没有收到函数的响应,我会遗漏什么? function _a_($id, $text) {
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
在组合数组时遇到了一些问题......这可行: $un[0] = array("0:0:0"); //$un[1] = array("1:1:1"); $flat = call
当函数包含引用参数时,下面的函数会产生错误,例如: function test(&$arg, &$arg2) { // some code } 现在我不能对上面的函数使用call_user_fun
我正在使用 mysqli 和准备好的语句为我的数据库编写一个简单的搜索引擎,我目前正在使用 call_user_func_array 来动态创建我的查询。我的问题是:使用 mysqli 是否有更快或更
我在 stack 上阅读了其他答案关于使用 call_user_func_array 与仅调用函数有关,但我仍然无法收集何时应该使用前者。我知道当您不知道传递了多少个参数时,您可能想使用 call_u
本周早些时候我看到了一段代码(不幸的是,我无法检索),我很好奇作者是如何实现 __call() 魔法方法的。代码如下所示: class Sample { protected function
我目前正在构建一个数据库处理程序。在 Firebird 数据库之上运行 PHP 5.4.16。 当我创建了准备好的语句后,我需要使用参数执行 SQL。我做了这个功能: private function
这个问题在这里已经有了答案: How to call the constructor with call_user_func_array in PHP (1 个回答) 关闭7年前。 我已经搜索了许多
这个问题在这里已经有了答案: How to call the constructor with call_user_func_array in PHP (1 个回答) 关闭7年前。 我已经搜索了许多
我使用的是 PHP 5.4.25。采取以下代码: 'John', 'last_name'=>'Doe']); call_user_func_array('fails', ['first_name'=>
这个问题已经有答案了: Sort array using array_multisort() with dynamic number of arguments/parameters/rules/dat
目前我正在使用: call_user_func( $func, $_POST['a'],$_POST['b'],$_POST['c'],$_POST['d'],$_POST['
我正在构建一个模板系统,但遇到了动态调用函数的问题。 当我尝试以下操作时: $args = array( 4, 'test' => 'hello', 'hi' ); 你知道..
PHP 的 call_user_func_array 在 Python 中是否有等效项? ? 最佳答案 以*开头的数组调用函数: function(*array) 关于Python 中的 PHP ca
我今天遇到了一个有趣的问题。我们有一个利用 Zend Frameworks 缓存功能的应用程序。对此应用程序的请求通常使用以下行调用工厂方法 $result = call_user_func_arr
这个问题在这里已经有了答案: Build SELECT query with dynamic number of LIKE conditions as a mysqli prepared state
我有一个方法,简化后看起来像这样: class Foo { public function bar($id) { // do stuff using $this, error occ
如何记录 call_user_func_array 中发生的 fatal error ?它位于作为守护进程运行的 CLI 脚本中。我想在发生错误时记录日志,但它总是抛回错误消息。 我尝试过但无法实现的
当使用 call_user_func_array() 我想通过引用传递一个参数。我该怎么做。例如 function toBeCalled( &$parameter ) { //...Do So
我是一名优秀的程序员,十分优秀!