我一直试图弄清楚如何将值绑定一段时间,但我似乎无法获得它的要点。
在这个代码块中,我所做的只是实例化'?'将绑定到另一个值的值。输出是这样的:
INSERT INTO table1(column1
,column2
)VALUES(?,?)
public function insertQuery($table, $fields = array()) {
$keys = array_keys($fields);
$values = '';
$x = 1;
foreach($fields as $field) {
$values .= '?';
if($x < count($fields)) {
$values .= ', ';
}
$x++;
}
$sql = "INSERT INTO {$table} (`".implode('`,`', $keys)."`) VALUES({$values})";
if($this->query($sql, $fields)) {
return $this;
}
return false;
}
一切正常,直到它到达我的查询方法
的execute()函数private function query($sql, $bind_value = array()) {
if($this->_query = $this->_pdo->prepare($sql)) {
if(count($bind_value)) {
$x = 1;
foreach($bind_value as $bind_values) {
echo "{$x} = {$bind_values} <br>";
$this->_query->bindValue($x, $bind_values);
$x++;
}
}
if($this->_query->execute()) {
$this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ);
$this->_count = $this->_query->rowCount();
} else {
echo 'a';
}
}
return $this;
}
它输出 a ,这意味着从未运行execute()。有没有我错过的东西?