<?php
class Database {
private $user = 'root';
private $pass = '';
private $dbName = 'test_data';
public function __construct() {
$this->db = new PDO('mysql:host=localhost;dbname=' . $this->dbName, $this->user, $this->pass);
}
function insertBatch($table, $data) {
$tableColNamesArray = array(); $tableColParamsArray = array(); $tableColValuesArray = array();
foreach ($data as $num => $dataRow) {
$oneRowValuesArray = array();
foreach ($dataRow as $tableColName => $value) {
if ($num == 1) {
$tableColNamesArray[] = $tableColName;
$tableColParamsArray[] = '?';
}
$oneRowValuesArray[] = $value;
}
$tableColValuesArray[] = $oneRowValuesArray;
}
$query = 'INSERT INTO '. $table .' (' . implode(', ', $tableColNamesArray) . ') VALUES (' . implode(', ', $tableColParamsArray) . ')';
// var_dump($tableColValuesArray);
// exit;
$this->db->beginTransaction();
$stmt = $this->db->prepare($query);
foreach($tableColValuesArray as $insertRow) {
//var_dump($insertRow);
$stmt->execute($insertRow);
}
$this->db->commit();
}
}
PD9waHAKZXJyb3JfcmVwb3J0aW5nKC0xKTsKCmNsYXNzIERhdGFiYXNlIHsKCglwcml2YXRlICR1c2VyID0gJ3Jvb3QnOwoJcHJpdmF0ZSAkcGFzcyA9ICcnOwoJcHJpdmF0ZSAkZGJOYW1lID0gJ3Rlc3RfZGF0YSc7CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkgewoJCSR0aGlzLT5kYiA9IG5ldyBQRE8oJ215c3FsOmhvc3Q9bG9jYWxob3N0O2RibmFtZT0nIC4gJHRoaXMtPmRiTmFtZSwgJHRoaXMtPnVzZXIsICR0aGlzLT5wYXNzKTsKCX0KCglmdW5jdGlvbiBpbnNlcnRCYXRjaCgkdGFibGUsICRkYXRhKSB7CgoJCSR0YWJsZUNvbE5hbWVzQXJyYXkgPSBhcnJheSgpOwoJCSR0YWJsZUNvbFBhcmFtc0FycmF5ID0gYXJyYXkoKTsKCQkkdGFibGVDb2xWYWx1ZXNBcnJheSA9IGFycmF5KCk7CgoKCQlmb3JlYWNoICgkZGF0YSBhcyAkbnVtID0+ICRkYXRhUm93KSB7CgkJCQoJCQkkb25lUm93VmFsdWVzQXJyYXkgPSBhcnJheSgpOwoKCQkJZm9yZWFjaCAoJGRhdGFSb3cgYXMgJHRhYmxlQ29sTmFtZSA9PiAkdmFsdWUpIHsKCQkJCWlmICgkbnVtID09IDEpIHsKCQkJCQkkdGFibGVDb2xOYW1lc0FycmF5W10gPSAkdGFibGVDb2xOYW1lOwoJCQkJCSR0YWJsZUNvbFBhcmFtc0FycmF5W10gPSAnPyc7CiAJCQkJfQoJCQkJJG9uZVJvd1ZhbHVlc0FycmF5W10gPSAkdmFsdWU7CgoJCQl9CgkJCSR0YWJsZUNvbFZhbHVlc0FycmF5W10gPSAkb25lUm93VmFsdWVzQXJyYXk7CgkJfQoKCQkkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy4gJHRhYmxlIC4nICgnIC4gaW1wbG9kZSgnLCAnLCAkdGFibGVDb2xOYW1lc0FycmF5KSAuICcpIFZBTFVFUyAoJyAuIGltcGxvZGUoJywgJywgJHRhYmxlQ29sUGFyYW1zQXJyYXkpIC4gJyknOwoKCQkvLyB2YXJfZHVtcCgkdGFibGVDb2xWYWx1ZXNBcnJheSk7CgkJLy8gZXhpdDsKCgkJJHRoaXMtPmRiLT5iZWdpblRyYW5zYWN0aW9uKCk7CgkJJHN0bXQgPSAkdGhpcy0+ZGItPnByZXBhcmUoJHF1ZXJ5KTsKCgkJZm9yZWFjaCgkdGFibGVDb2xWYWx1ZXNBcnJheSBhcyAkaW5zZXJ0Um93KSB7CgkJCS8vdmFyX2R1bXAoJGluc2VydFJvdyk7CgoJCQkkc3RtdC0+ZXhlY3V0ZSgkaW5zZXJ0Um93KTsKCQl9CgkJJHRoaXMtPmRiLT5jb21taXQoKTsKCQlwcmludF9yKCR0aGlzLT5kYi0+ZXJyb3JJbmZvKCkpOyAKCX0KCn0=