2017-05-15 17 views
1

값을 검색 한 후 데이터베이스에 간단한 삽입을 시도하고 있습니다. 동일한 프로 시저에 따라 값을 삽입 할 데이터베이스의 값을 검색합니다. 여기 bind_param() 제대로 작동하지 않습니다.

Fatal error: Uncaught Error: Call to a member function bind_param() on boolean 

내 코드입니다 : 그것은, 그러나 나는 다음과 같은 오류 얻을 분명히

$getuid = $mysqli->prepare("SELECT id FROM members WHERE email = ?"); 
    $getuid->bind_param("s", $email); 
    $getuid->execute(); 
    $getuid->bind_result($uid); 
    $nombre = $_POST['nombre']; 
    $direccion = $_POST['direccion']; 
    $codpost = $_POST['codpost']; 
    $municipio = $_POST['municipio']; 
    $estado = $_POST['estado']; 
    while($getuid->fetch()){ 
     echo("INSERT INTO infoclientes VALUES ($uid, $nombre, $direccion, $codpost, $municipio, $estado)"); 
     $infocte = $mysqli->prepare("INSERT INTO infoclientes VALUES(?, ?, ?, ?, ?, ?)"); 
     $infocte->bind_param("ssssss", $uid, $nombre, $direccion, $codpost, $municipio, $estado); 
     $infocte->execute(); 
     $infocte->close(); 
    } 
    $getuid->close(); 

을, 오류가

$infocte->bind_param("ssssss", $uid, $nombre, $direccion, $codpost, $municipio, $estado); 
에서 나온다3210

이 두 번째 bind_param 전에 에코의 출력은 다음과 같습니다

INSERT INTO infoclientes VALUES (1, Fernando Cervantes, Av. Pie de la cuesta 2, 76158, Querétaro, Querétaro) 
+0

첫 번째 오류가 아니라 두 번째 bind_param 행에서 오류가 발생했다는 것을 어떻게 알 수 있습니까? – kojow7

+0

두 번째 bind_param 줄 앞에는 디버깅 목적으로 echo()가 있습니다. 변수 $ uid는 $ getuid에 의해 올바르게 검색되며 에코 출력으로 표시됩니다. –

+0

이전 결과 집합을 비 웁니다. 그 때 무슨 일이 일어날 지 알려주세요. 한 번만 준비하고 준비를 반복하지 마십시오. – mickmackusa

답변

0

내가이 일을있어! 방금 $ getuid-> close()를 echo() 전에 줄에 옮겼습니다. 나는 그것이 @LouisLoudogTrottier가 언급했듯이, 같은 연결이 열리는 동안 두 쿼리를 모두 준비하려고하고 있다고 생각합니다.