2017-05-15 60 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正确检索,由echo输出显示。 –

+0

释放以前的结果集。让我知道接下来会发生什么。准备一次,不要循环准备。 – mickmackusa

回答

0

我得到它的工作!我只是将$ getuid-> close()移至echo()之前的行。我想这是@LouisLoudogTrottier提到的,我试图在打开相同连接时准备两个查询。

相关问题