문제
PHP의 MySQLI 기능은 훌륭합니다.
준비된 진술은 쿼리에서 매개 변수를 주입하는 데 좋습니다.
그러나 명령문을 사용하는 경우 더 이상 Fetch_assoc 기능에 액세스 할 수없는 것 같습니다. 모든 결과를 수동으로 바인딩해야합니다. 이는 내 SQL 쿼리가 모든 필드를 나열해야한다는 것을 의미하며 결과를 얻을 때 모든 변수를 미리 나열해야합니다 (bind_result 사용). 이것은 매우 성가시고 시간을 낭비 할 수 있습니다.
대안이 있습니까?
감사
해결책
MySQLI는이를 다루는 방법을 제공하고 result_metadata 함수를 살펴 봅니다.
번거 로움이없는 매개 변수화 된 MySQLI 쿼리를 허용하기 위해 클래스를 작성했습니다. 다운로드 및 기본 사용 정보가 다음과 같습니다. http://www.robpoyntz.com/blog/?p=191
다른 팁
예, 그것은 호출됩니다 pdo 일반적으로 MySQLI보다 선호됩니다. 일반적인 페치 옵션과 진술을 제공하며 모든 매개 변수를 명시 적으로 바인딩하도록 강요하지 않습니다. 일반적인 쿼리는 다음과 같습니다.
$stmt = $db->prepare("SELECT * FROM foo WHERE a = ?");
$stmt->execute(array($a));
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
PDO는 매우 유연하기 때문에 다른 방식으로도 사용할 수 있습니다. 매뉴얼에는 많은 훌륭한 예가 있습니다. 구경하다!
제휴하지 않습니다 StackOverflow