0
나는 많은 변수가있는 게시물을 가지고 있으며, 사용자가 무엇을 선택했는지에 따라 포스트 변수가 변경되므로 수동으로 모두 입력하는 대신 동적으로 정보를 삽입하는 방법이 있는지 궁금합니다.mysql 함수에 동적 PHP 삽입을 생성 하시겠습니까?
나는 많은 변수가있는 게시물을 가지고 있으며, 사용자가 무엇을 선택했는지에 따라 포스트 변수가 변경되므로 수동으로 모두 입력하는 대신 동적으로 정보를 삽입하는 방법이 있는지 궁금합니다.mysql 함수에 동적 PHP 삽입을 생성 하시겠습니까?
이것은 우리가 비슷한 일을 수행하는 데 사용하는 무엇인가가 조회를 설명 사용
(우리가 제어 할 수없는 테이블에 삽입을, 어떤 API에 액세스 할 수 없습니다) 삽입 존재 열만을 보장합니다.
$db = new DB();
$sql = 'DESCRIBE `table`';
$result = $db->query($sql);
$row = array();
$query = array();
while ($row = $result->fetchRow())
{
if (array_key_exists($row['field'], $form_data))
if (is_null($form_data[$row['field']]))
$query[$row['field']] = 'NULL';
else
$query[$row['field']] = $db->quote($form_data[$row['field']]);
}
$keys = array_keys($query);
foreach ($keys as &$key)
$key = $db->quoteIdentifier($key);
unset($key);
$vals = array_values($query);
$sql = 'INSERT INTO `table` '
. '(' . implode(', ', $keys) . ') '
. 'VALUES(' . implode(', ', $vals) . ')';
편집 : DB()는 MDB2를 둘러싼 래퍼입니다.
물론 전체 행을 채울 수 있습니다. 제한된 열 (자동 증가 ID 등)이있는 경우 양식 데이터에서 필터링해야합니다 ...
물론 "필수적으로 자동으로 SQL을 생성하지 않는 것이 좋습니다." – jasonbar