我正在尝试学习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">
<button type="reset" class="btn btn-default">Cancel</button>
</div> <!-- /.col -->
答案 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);
?>