【发布时间】:2013-10-23 23:29:02
【问题描述】:
假设我有这个代码:
$array = array('one' => $one, 'two' => $two);
$sql->sql_insert('table_name', $array);
我有类对象$sql 和函数sql_insert,但是我将如何使用mysqli 准备好的语句来绑定值并将其插入到数据库中?假设mysqli connection 是$this->connection
任何建议都会非常感谢。
编辑:
function sql_insert_bind($table, $insert){
$count = count($insert);
$bind_val = '';
for($i = 0; $i <= $count; $i++){
$bind_val .= '?, ';
}
$query = $this->connection->prepare('INSERT INTO `'.$table.'` VALUES ('.substr($bind_val, 0, -2).')');
foreach($insert as $key => $value){
$query->bind_param($key, $value);
}
$query->execute();
}
我收到错误消息:Fatal error: Call to a member function bind_param() on a non-object 但$this->connection 是 mysqli 对象
【问题讨论】:
-
查看编辑的代码以供我尝试。谢谢
-
我知道您已经在使用 MySQLi,但在这种情况下使用 PDO 的 API 会更容易
-
有什么更好的? PDO 还是 Mysqli?我现在正在重写我的 sql 类,所以这并不重要。你有PDO的样本吗?谢谢
-
两者都不是更好。这真的取决于个人选择以及每个 API 与您要完成的任务的匹配程度。由于 PDO 支持命名参数,我认为在这种情况下它会很好地工作。请参阅我的答案以获取示例