【发布时间】:2013-11-09 01:35:11
【问题描述】:
我正在编辑一个使用 MySQLi 的脚本。我需要使用准备好的语句将一些值插入到数据库中。
我的数组是这样的:
$insert = array('column1' => 'value1', 'column2' => 'value2', 'column3' => 'value3')
到目前为止我有这个,但我需要bind_param 部分的帮助。我在这里看到了使用 call_user_func_array 的文档,但我不确定如何实现。
$cols = array_keys($insert);
$query = "INSERT IGNORE INTO results (". implode(", ", $cols) .") VALUES (". implode(', ', array_fill(0, count($insert), '?')) .")";
$stmt = $mysqli->prepare($query);
$param = array_merge(array(str_repeat('s', count($insert))), array_values($insert));
call_user_func_array(array($stmt, 'bind_param'), $param);
$stmt->execute();
PHP 5.4.17
【问题讨论】:
-
PHP.net 文档很好地解释了函数:php.net/manual/en/mysqli-stmt.bind-param.php
-
谢谢,但那是我的第一个目的地。我还没有完全弄清楚。
-
@allanb,在 SamA 的链接中查看带有 ReflectionClass 示例的评论(上层评论)。
标签: php mysql mysqli sql-insert