mysqli插入数据为空白并添加了double

时间:2015-03-06 00:11:47

标签: php mysqli

我正在尝试学习mysqli,所以我将我的网站转换过来。我在更新部分遇到了困难,所以我决定采取一些步骤,一次一点点。

我正在尝试切换使用INSERT的add-item页面。问题是,没有任何东西被放入数据库,并且它放入了2个空白行。(正在添加2个项目)

我一直戴着这个问题的板子,我搜索答案并做试验&在询问之前的错误,但我似乎无法掌握这个mysqli。它适用于mysql,但随着它被折旧,我想切换它。

post2.php

     <?php

        $db = new mysqli("localhost","admin","pass","database"); 

        if(!$db) {
    die('sorry we are having some problbems');
}

if(isset($_POST['submit'])) {
    $stmt = $db->prepare("INSERT INTO new_equip(`id`,`itemname`, `manufacture`, `model`,`serial`) VALUES(?,?,?,?,?)");
    $stmt->bind_param("issss", $_POST['id'], $_POST['itemname'], $_POST['manufacture'], $_POST['model'], $_POST['serial']);

    if(!$stmt->execute()) {
    // Do your error stuff

  die('Error: ' . mysqli_error($db));
 }

}
echo $sql;
var_dump($_POST);
mysqli_close($db);
?>

add-item.php

<form method="post" action="post2.php" enctype="multipart/form-data" class="form-horizontal" accept-charset="UTF-8">
<div class="form-group">
    <label class="col-md-3">Item Name</label>
    <input type="text" name="itemname" value="" class="form-control" />
</div> <!-- /.form-group -->
<div class="form-group">
    <label class="col-md-3">Manufacture</label>
    <input type="text" name="manufacture" value="" class="form-control" />
</div> <!-- /.form-group -->
<div class="form-group">
    <label class="col-md-3">Model</label>
    <input type="text" name="model" value="" class="form-control" />
</div> <!-- /.form-group -->
<div class="form-group">
    <label class="col-md-3">Serial</label>
    <input type="text" name="serial" value="" class="form-control" />
</div> <!-- /.form-group -->
<div class="col-md-8 col-md-push-3">
    <input type="submit" name="Submit" class="btn btn-primary">
    &nbsp;
    <button type="reset" class="btn btn-default">Cancel</button>
</div> <!-- /.col -->

1 个答案:

答案 0 :(得分:0)

那是因为你运行了2次查询。

有一次:

$result = $db->query($sql);

第二次来到这里:

if (!mysqli_query($db,$sql))

您应该将if (!mysqli_query($db,$sql))替换为if (!$result),或者只删除$result = $db->query($sql);

准备好的声明版本:

<?php

    $db = new mysqli("localhost","admin","pass","database"); 

    if(!$db) {
    die('sorry we are having some problbems');
}

if(isset($_POST['submit'])) {
    $stmt = $db->prepare("INSERT INTO new_equip(`id`,`itemname`, `manufacture`, `model`,`serial`) VALUES(?,?,?,?,?)");
    $stmt->bind_param("issss", $_POST['id'], $_POST['itemname'], $_POST['manufacture'], $_POST['model'], $_POST['serial']);

    if(!$stmt->execute()) {
        // Do your error stuff

        die('Error: ' . mysqli_error($db));
    }

}

echo $sql;
var_dump($_POST);
mysqli_close($db);
?>