문제

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는 매우 유연하기 때문에 다른 방식으로도 사용할 수 있습니다. 매뉴얼에는 많은 훌륭한 예가 있습니다. 구경하다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top