스크립트를 작성하면서 $ db-> prepare() 및 $ stmt-> bindParam()을 지속적으로 입력했습니다. 나는 그것을 모든 기능에 통합하는 방법을 찾고있다. 이것은 내가 지금까지 가지고있는 것이다.PDO를위한 쿼리 함수 생성 시도
$sql = "SELECT (name, email) FROM users WHERE VALUES (:name, :email)"
$values = array(':name' => 'my_name', ':email' => '[email protected]',);
function db_query($sql, $values) {
global $db; //Database object
$stmt = $db->prepare($sql);
foreach($values as $placeholder => $value) {
$stmt->bindParam($placeholder, $value);
}
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
대부분의 쿼리에 충분합니까? 이 작업을 수행하는 안전한 방법입니까?
쿼리가 실행되고 반환되는 모든 항목 (NULL, 값, 오류 등)을 반환하기 만하면됩니다.
감사합니다.
foreach 루프를'$ stmt-> execute ($ values);로 대체 할 수 없습니다. –
작동하는 한 충분해야합니다. 가져 오기/삽입/삭제/업데이트 할 각 항목에 대한 몇 가지 테스트 사례를 작성하십시오. 나는 "질의"를 실제 질의로하는 경향이 있으며, IE fetchAll'' fetchOne'을 가져 오는 별도의 함수를 작성하지만, PDO 클래스를 내 자신의 래퍼로 확장하기 때문에 엉망이 될 필요가 없다. 글로벌 비즈니스. :) 그것이 충분하고 작동하는지 확인하는 가장 좋은 방법은 테스트하고 보는 것입니다. –
+1 여기는 극히 드문 종류의 질문입니다. –