나는이 복제본처럼 들리지만, 하나의 쿼리로 여러 행을 추가 할 생각이 아니라 이미 작동하고 있습니다. 문제는 하나의 행만 삽입해야한다는 것입니다.하나의 쿼리에 여러 데이터베이스 행 삽입
이 작업을 수행하는 두 개의 코드가 있습니다. 한 첫 번째 - 등록 페이지 : 다음
$user = DB::getInstance()->insert('users', array(
'username' => 'Sam',
'password' => 'password',
'salt' => 'salt'
));
하고 실제로 별도의 PHP 클래스에서 쿼리 수행 무엇을 : 아주 조금이
public function insert($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)->error()) {
return true;
}
return false;
}public function query($sql, $params = array()) {
$this->_error = false;
if($this->_query = $this->_pdo->prepare($sql)) {
$x = 1;
if(count($params)) {
foreach($params as $param) {
$this->_query->bindValue($x, $param);
$x++;
}
}
if($this->_query->execute()) {
$this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ);
$this->_count = $this->_query->rowCount();
} else {
$this->_error = true;
}
}
return $this;
}
,하지만 난 그냥 포함하고 싶었다 모두. 이것은 현재 작동하고 있습니다, 내 데이터베이스에 기록을 입력, 유일한 문제는 매 2 때마다 입력한다는 것입니다. 을 heres SCREENSHHOT 내 데이터베이스의
:
당신은 내가 잠시 동안 지금이 코드를 통해 진행되고 한 ID 년대에서 볼 수 있듯이. 나는 무언가가 terrifically 작은 것은 그것을 떨어져 던지고있는 느낌을 가지고 있지만, 나는 그것을 찾을 수없는 것 같아요 눈의 신선한 쌍의 도움이 필요합니다.
삽입 인 것으로 확인되는 것은 한 번만 호출됩니다. 또한 삽입 시간을 결정하기 위해 스키마에 시간 소인을 추가하는 것이 좋습니다. –
@kzarns 내가 추가 한 코드의 첫 번째 줄은 삽입 함수가 파일의 아무 곳에서나 호출되는 유일한 시간입니다. 그리고 제가 말할 수있는 한, 첫 번째 엔트리는 페이지가 처음 실행될 때 발생하고, 두 번째 엔트리는 페이지가 모든 리소스를로드 한 후에 나타납니다. –