gpt4 book ai didi

php - 如何在不重复参数的情况下将参数绑定(bind)到多个值

转载 作者:行者123 更新时间:2023-11-30 21:36:27 24 4
gpt4 key购买 nike

我准备好的陈述看起来像这样:

$stmt20 = $conexao->prepare("
INSERT INTO esc_usuarios_pgtoparcelas (parcela_codigo_plano, parcela_mes, parcela_valorBonificacao, parcela_situacao)
VALUES
(LAST_INSERT_ID(), ?, ?, ?),
(LAST_INSERT_ID(), ?, ?, ?)
");
$stmt20->bind_param('sdssds', $m1, $zero, $parcela_situacao_prog, $m2, $zero, $parcela_situacao_prog);
$stmt20->execute();

如您所见,参数重复,$m1$m2 除外。我可以将这些重复的参数绑定(bind)到多个值并保留这些 m1m2 吗?即使我必须插入很多值,绑定(bind)顺序也不会改变。

最佳答案

通常您不会像这样尝试加倍,您会准备一次语句并使用不同的值运行两次。我不是 PHP 编码员,所以我借用了 GMB 的帖子:

$stmt20 = $conexao->prepare("
INSERT INTO esc_usuarios_pgtoparcelas (parcela_codigo_plano, parcela_mes, parcela_valorBonificacao, parcela_situacao)
VALUES
(LAST_INSERT_ID(), :m, :zero, :parcela_situacao_prog)
");

$stmt20->execute(array(
:m => $m1,
:zero => $zero,
:parcela_situacao_prog => $parcela_situacao_prog
));

$stmt20->execute(array(
:m => $m2,
:zero => $zero,
:parcela_situacao_prog => $parcela_situacao_prog
));

如果要插入 1000 个值,则准备语句一次并执行 1000 次(在循环中)。

$stmt20 = $conexao->prepare("
INSERT INTO esc_usuarios_pgtoparcelas (parcela_codigo_plano, parcela_mes, parcela_valorBonificacao, parcela_situacao)
VALUES
(LAST_INSERT_ID(), :m, :zero, :parcela_situacao_prog)
");

for ($x = 0; $x <= 1000; $x++) {
$stmt20->execute(array(
:m => $array_of_m[$x],
:zero => $zero,
:parcela_situacao_prog => $parcela_situacao_prog
));
}

在 mysqli 的 php 帮助文档中挖掘,我猜你的情况的代码可能更像:

$stmt20 = $conexao->prepare("
INSERT INTO esc_usuarios_pgtoparcelas (parcela_codigo_plano, parcela_mes, parcela_valorBonificacao, parcela_situacao)
VALUES
(LAST_INSERT_ID(), ?, ?, ?)
");

$stmt20->bind_param('sdssds', $m, $zero, $parcela_situacao_prog);

for ($x = 0; $x <= 1000; $x++) {
$m = $array_of_m[$x];
$stmt20->execute();
}

主要是我试图理解这样一种观念,即您设置一次,然后只需更改值并重复调用执行..

请注意,我不是 PHP 编码员。我引用了这个:PHP/mysql: mysqli prepared statement insert same value multiple times within for loop

关于php - 如何在不重复参数的情况下将参数绑定(bind)到多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53668423/

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