여분의 행을 삽입하지만, 데이터베이스에 삽입 동일한 기능을 사용겉으로 동일한 SQL PHP에서 쿼리,하지만 하나의 내가 두 가지 방법으로 아래의 쿼리를 생성
INSERT 사람 값으로 ('', ' 존, 스미스, 뉴욕, 뉴욕, 123456);
SQL 데이터베이스에 별도의 빈 행이 CORRECT 삽입물의 아래에있어서의 결과,
foreach($_POST as $item)
$statement .= "'$item', ";
$size = count($statement);
$statement = substr($statement, 0, $size-3);
$statement .= ");";
아래 상술 한 것과 동일한 질의를 생성한다 코드 (그들이 동일 에코)하지만 때 나는 그것을 사용하여, ID가있는 여분의 빈 행이 데이터가있는 올바른 행 뒤에있는 데이터베이스에 삽입됩니다. 매번 두 행이 삽입됩니다. 나는 양식에서 게시 된 항목에 대한 검증을 실행하고 데이터베이스에 저장하기 전에 몇 가지 조작을 수행해야 할 필요가 있기 때문에
$mytest = "INSERT INTO person VALUES('','$_POST[name]', '$_POST[address]','$_POST[city]', '$_POST[state]', '$_POST[zip]');";
, 나는 두 번째 쿼리 방법을 사용할 수 있어야합니다.
두 가지가 어떻게 다른지 이해할 수 없습니다. 나는 똑같은 함수를 사용하여 데이터베이스에 연결하고 삽입하므로 문제가있을 수 없습니다.
아래 참조 내 삽입 기능입니다 :
function do_insertion($query) {
$db = get_db_connection();
if(!($result = mysqli_query($db, $query))) {
#die('SQL ERROR: '. mysqli_error($db));
write_error_page(mysqli_error($db));
} #end if
}
는 여기에 대한 INSITE/도움을 주셔서 감사합니다.
솔직히 문제를 볼 수 없지만 제공하지 않은 코드에 문제가있을 수 있습니다. –
함수와 같은 소리가 두 번 호출됩니다. 그러나 우리는 당신의보기에서 그것을 볼 수 없습니다. 한 번만 값없이. – xQbert
** 경고 ** : mysqli를 사용할 때 매개 변수가있는 쿼리와 ['bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php)을 사용하여 사용자를 추가해야합니다 데이터를 쿼리에 추가하십시오. ** 심각한 [SQL injection bug] (http://bobby-tables.com/)를 만들므로 문자열 보간을 사용하여 **이를 수행하지 마십시오. **'$ _POST' 데이터를 쿼리에 직접 입력하지 마십시오. – tadman