gpt4 book ai didi

php - 使用参数数组绑定(bind) Param

转载 作者:IT王子 更新时间:2023-10-28 23:56:56 32 4
gpt4 key购买 nike

我有一个函数可以做到这一点:

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 = array(&$firstName, &$lastName, &$address, &$postcode, &$email, &$password);

因为 mysqli_stmt::bind_param 通过引用期望第二个和后面的参数。


编辑:您的查询似乎有误。也许你的字段比那里的变量少。做:

"INSERT INTO Users (field1, field2, field3, field4, field5, field6) VALUES (?, ?, ?, ?, ?, ?)"

用正确的名称替换字段的名称

关于php - 使用参数数组绑定(bind) Param,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16236395/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com