【发布时间】:2013-02-04 21:31:24
【问题描述】:
我现在正在做我自己的第一个数据库类,目前我正在做准备功能。
这个函数的作用是接受一个 SQL 查询,然后是一个包含语句变量的数组。我在将参数绑定到语句时遇到问题。
这就是函数现在的样子
public function prepare($query, $var) {
$types = '';
foreach($var as $a) {
$type = gettype($a);
switch($type) {
case 'integer':
$types .= 'i';
break;
case 'string':
$types .= 's';
break;
default:
exit('Invalid type: ' . $a .' ' . $type . '(' . count($a) . ')');
break;
}
}
$stmt = self::$connection->prepare($query);
$stmt->bind_param($types, $var); // How do I do here??
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()) {
print_r($row);
}
}
一切都按我的意愿工作(我知道这个功能可以做一些改进,但它会做它需要做的事情)。我已经评论了我无法弄清楚该怎么做的那一行。 $var 是一个数组,如果我没记错的话,变量需要用逗号分开传递。这就是我无能为力的地方。
【问题讨论】:
-
提示:您设置的通用标签越多,您的问题就越受到关注。它当时只有 7 个视图,这都归功于您选择的复杂标记。
php总是一个不错的选择。
标签: php class mysqli prepared-statement bindparam