Mysqli第二个查询不起作用

时间:2014-07-19 00:22:12

标签: mysqli

我想使用第一个查询的de result插入第二个查询,sintaxis中没有错误。

我一直在阅读很多内容,但似乎有效。

帮助!

$sql = "CALL sp_producto(1);";
    $rs = $mysqli->query($sql);
    $idNuevo;
    if ($fila = $rs->fetch_assoc()) {
        $idNuevo = $fila['idNew']; //recupera el id del insertado
        $talleres = explode(",", $_POST["proceso_prod"]);
        foreach ($talleres as $t) {
            //THIS DOESN'T WORK BUT IDONT KNOW WHY
            $sql = "INSERT INTO proceso_produccion () VALUES (" . $idNuevo . ", ".$t.")";
            echo $sql;
            $mysqli->query($sql);
        }
    }

2 个答案:

答案 0 :(得分:0)

INSERT INTO proceso_produccion () VALUES (" . $idNuevo . ", ".$t.")

这一行是个问题,如果要在所有表格列中插入值,则无需使用此() ,将您的代码更改为:

INSERT INTO proceso_produccion VALUES (" . $idNuevo . ", ".$t.")

但是如果只插入某个列,则必须指定列名

像这样:

INSERT INTO proceso_produccion ('firstColumn','anotherColumn') VALUES (" . $idNuevo . ", ".$t.")

答案 1 :(得分:0)

Niang回答正确,但也要检查您输入的两个值是否为整数。否则,应该用引号括起来:

INSERT INTO proceso_produccion ('firstColumn','anotherColumn') VALUES ('" . $idNuevo . "', '".$t."')

此外,这种情况并非真实情况:

if ($fila = $rs->fetch_assoc()) { 

您只是以这种方式为$ fila分配值。它应该是:

if ($fila == $rs->fetch_assoc()) { 

最后,如果查询仍然不起作用,请发表echo echo查询,echo $ sql的结果。