无法使bind_param()正常工作

时间:2017-05-15 04:24:54

标签: php mysqli prepared-statement sql-insert bindparam

我正在尝试从我的数据库中检索一个值后执行一个简单的插入,我正在按照相同的过程从我的数据库中检索一个值,以便在其中插入值,但是我收到以下错误:

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);

这是第二个bind_param之前的echo输出:

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

1 个答案:

答案 0 :(得分:0)

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