표시하고 싶습니다. 이전에 두 개의 쿼리가 필요합니다. 그리고 새로운 Mysqli 인터페이스로이 작업을하려고 할 때 올바른 방법으로 작동하지 않습니다.여러 MYSQLI 사용 준비 및 가져 오기
나는이 있고, 출력은 다음과 같습니다 경고 : mysqli가 :: [mysqli.prepare]) (준비 : 새로운 문을 준비하기 전에 모든 데이터를 가져올 수 있어야는
$qryRdmPh="SELECT `id` FROM `table` ORDER BY RAND() LIMIT 0,30";
$stmtRdmPh = $mysqli->prepare($qryRdmPh);
$stmtRdmPh->execute();
$stmtRdmPh->bind_result($id);
while($stmtRdmPh->fetch()) {
//Obtener el atributo Frase
$qryPhVal="SELECT `id_v` FROM `values` WHERE `id_p`='" . $id . "'";
$stmtPhVal = $mysqli->prepare($qryPhVal);
$stmtPhVal->execute();
$stmtPhVal->bind_result($idV);
while($stmtPhVal->fetch()){
echo $idV;
}
}
가해야 장소를 소요 복잡한 규칙없이 결과를 표시하는 또 다른 방법이 될 것입니다 ... 필자는 Statement 쿼리를 사용하는 것이 매우 중요하다고 읽었지만 그 이유는 무엇입니까? 그것은 내 코드를 훨씬 더 길고 복잡하게 만든다.
편집 : 내게 진술이 중요하고 항상 사용해야하는지 누군가가 설명하면 정말 고맙습니다.
내부 쿼리가 외부 쿼리의 결과를 기반으로 물건을 가져 오는 중첩 쿼리를 수행 할 때마다 [SQL join] (http://en.wikipedia.org/wiki/Join_)을 사용해야합니다. % 28SQL % 29) –
@MarcB이 경우, 프리스트 쿼리가 반환 한 각 단일 ID에 대한 결과 집합이 필요합니다. 나는 거기에 어떤 연줄이라도 할 수 있다고 생각하지 않는다. – Kenedy
그래서? 두 개의 중첩 된 쿼리가 수행 할 수있는 모든 작업은 조인 된 쿼리가 더 잘 수행 할 수 있습니다. '테이블에서 ID를 선택하려면 values.id_p = table.id에 대한 조인 값을 rand() limit 0,30' 순서로 선택하십시오. –