我有一个功能可以做到这一点:
function registerUser($firstName, $lastName, $address, $postcode, $email, $password)
{
$params = array($firstName, $lastName, $address, $postcode, $email, $password);
$result = $this->db->bind("INSERT INTO Users VALUES (?, ?, ?, ?, ?, ?)", 'ssssss', $params);
}
哪个发送到我的数据库类,它执行以下操作:
public function bind($query, $type, $params)
{
$this->query = $query;
$stmt = $this->mysqli->prepare($this->query);
$stmt->bind_param($type, $param);
$stmt->execute;
}
问题是这不起作用。
我希望做的是获取$params
列表,并在后面列出它们$type
,以使查询类似于:
$stmt->bind_param('ssssss', $firstName, $lastName, $address, $postcode, $email, $password);
但是很明显,我走错了路。
有没有办法使数组…按原样转换为要在bind_param
查询阶段打印出来的列表?
call_user_func_array “使用参数数组调用回调”
call_user_func_array(array($stmt, "bind_param"), array_merge(array($type), $params));
应该做的工作
更新 :您还必须更改您的params数组:
$params = array(&$firstName, &$lastName, &$address, &$postcode, &$email, &$password);
如mysqli_stmt::bind_param
预期的那样,通过引用提供第二和以下参数。
编辑:您的查询似乎是错误的。也许您的字段少于那里的变量。做:
"INSERT INTO Users (field1, field2, field3, field4, field5, field6) VALUES (?, ?, ?, ?, ?, ?)"
您用正确的名称替换字段的名称
问题内容: 我正在尝试绑定准备好的语句参数,该参数是“多维” PostgreSQL数组。这是一个数组示例(列类型为): 如何使用预处理语句绑定类似的值?我试过了: 它没有用: 无法将java.lang.String的实例强制转换为Types.ARRAY 有任何想法吗? 问题答案: 尝试这样的事情(未经测试): 链接: JDBC中的Postgres和多维数组 将数组从Java传递到Postgres
参数绑定是把当前请求的变量作为操作方法(也包括架构方法)的参数直接传入,参数绑定并不区分请求类型。 参数绑定传入的值会经过全局过滤,如果你有额外的过滤需求可以在操作方法中单独处理。 按名称绑定 参数绑定方式默认是按照变量名进行绑定,例如,我们给Blog控制器定义了两个操作方法read和archive方法,由于read操作需要指定一个id参数,archive方法需要指定年份(year)和月份(mon
问题内容: 我正在尝试将数组作为IN变量传递给for。我怎样才能做到这一点? 我无法让它为我的一生工作。有什么想法吗?上面的代码只是一个示例。 问题答案: 在这种情况下,这样做是不合适的。您正在构造实际的SQL(这就是逗号和引号),并将其作为参数传递。它基本上以评估那里是全部。 同样,这是关于引号的一个好电话。MySQL使用单引号。 您将需要仅使用字符串连接来构建SQL,或者使用多个参数。 编辑
问题内容: 我需要将动态参数传递给applet。 这是我的控制器: 这是我的观点,参数base64在控制器中定义为“ abcd” 当我运行页面时,我在p标签中看到字符串’abcd’,但是applet参数的值只是“ {{base64}}”。 我该如何解决? 问题答案: 我解决了传递整个applet声明的问题。这样,它可以正常工作。 控制器: 视图:
我正在努力做到以下几点。Java应用程序应该通过ScriptEngineManager/ScriptEngine运行javascript,javascript应该能够调用Java应用程序中的函数。只要只传递一个简单的变量,这种方法就非常有效。但我无法让它通过数组。这是我的代码: 我得到了一个错误: 线程“main”java中出现异常。ClassCastException:jdk。纳肖恩。应用程序编
问题内容: 我正在尝试为我的数据库实现一个非常基本的搜索引擎,其中用户可能包含各种信息。搜索本身包含几个联合选择,其中结果总是合并为3列。 但是,返回的数据是从不同的表中获取的。 每个查询都使用$ term进行匹配,并将其绑定到“:term”作为预备参数。 现在,该手册说: 调用PDOStatement :: execute()时,对于要传递给语句的每个值,必须包含一个唯一的参数标记。您不能在准备