这是我第一次使用PDO,我目前正在创建一个包含多个查询功能(选择,插入,更新等)的PDO数据库类。
但是,我坚持使用插入功能。我已经成功创建了select和get行函数,但是我无法使插入函数工作。
显然,我从MySQL转向PDO以获得更容易准备的语句,等等。这是导致此问题的原因,每当数据存储在数据库中时,它只会存储问号?用于参数。
网站上没有显示错误(是的,显然启用了错误报告......)
这是我到目前为止尝试使用插入功能:
public function insert( $table, $columns = array(), $records = array() ) {
$count_columns = count( $columns );
$added = 0;
$fields = array();
foreach( $columns as $field ) {
$fields[] = '`' . $field . '`';
}
$fields = ' (' . implode( ', ', $fields ) . ')';
$values = array();
$holders = array();
$params = array();
foreach( $records as $record ) {
foreach( $record as $r ) {
$holders[] = '?';
}
if( count( $record ) == $count_columns ) {
$values[] = '(\'' . implode( '\', \'', array_values( $holders ) ) . '\')';
$params = array_merge( $params, $record );
$added++;
}
}
$values = implode( ', ', $values );
$table = $this->prepend_table( $table );
$sql = "INSERT INTO {$table} {$fields} VALUES {$values}";
print_r( $params );
try {
$stmt = $this->connection->prepare( $sql );
$stmt->execute( $params );
return $added;
} catch( PDOException $e ) {
die( 'Query Error: ' . $e->getMessage() );
exit;
}
}
如果您发现任何其他问题,请告知我,因为我处于PDO的早期学习阶段。
谢谢,
基隆