PDO:插入函数查询生成器

时间:2016-08-14 00:23:26

标签: php mysql pdo insert

这是我第一次使用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的早期学习阶段。

谢谢,

基隆

0 个答案:

没有答案