mysqli数据INSERT不起作用但没有错误 我刚开始使用mysqli,我真的不知道一切都很好 我也看到了关于它的其他问题,但没有一个解决方案适合我
这是表格:
<head>
<title>NEW</title>
</head>
<body>
<table border="1">
<tr>
<td align="center">NEW</td>
</tr>
<tr>
<td>
<table>
<form method="post" action="add.php">
<tr>
<td>name</td>
<td><input type="text" name="name" size="20">
</td>
</tr>
<tr>
<td>type</td>
<td><select name="ptype">
<option value="a1">a1</option>
<option value="a2">a2</option>
<option value="a3">a3</option>
</select>
</td>
</tr>
<tr>
<td></td>
<td align="right"><input type="submit"
name="submit" value="GO"></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
这是add.php文件:
<?php
require("dbconnect.php");
if (isset($_POST['submit'])) {
$db->query("SET NAMES 'utf8'");
$stmt = $db->prepare("INSERT INTO `business` (`ptype`, `name`) VALUES (?, ?)");
$stmt->bind_param('ss', $ptype, $name);
$name = $_POST["name"];
$ptype = $_POST["ptype"];
printf("%d Row inserted.\n", $stmt->affected_rows);
/* close statement and connection */
$stmt->close();
/* close connection */
}
$db->close();
?>
它说插入了0行
答案 0 :(得分:3)
更改
$stmt->bind_param('ss', $ptype, $name);
$name = $_POST["name"];
$ptype = $_POST["ptype"];
到
$name = $_POST["name"];
$ptype = $_POST["ptype"];
$stmt->bind_param('ss', $ptype, $name);
$stmt->execute();
答案 1 :(得分:2)
您已准备好语句并绑定参数。现在执行它。
$stmt = $db->prepare("INSERT INTO `business` (`ptype`, `name`) VALUES (?, ?)");
$stmt->bind_param('ss', $ptype, $name);
$stmt->execute();
答案 2 :(得分:1)
正如@andrewsi在他的评论中提到的,你准备了insert语句但没有执行它。这就是为什么它不起作用。
尝试在代码中使用$stmt->execute();
。
所以你的查询应该是这样的:
<?php
require("dbconnect.php");
if (isset($_POST['submit'])) {
$db->query("SET NAMES 'utf8'");
$stmt = $db->prepare("INSERT INTO `business` (`ptype`, `name`) VALUES (?, ?)");
$name = $_POST["name"];
$ptype = $_POST["ptype"];
$stmt->bind_param('ss', $ptype, $name);
$stmt->execute();
printf("%d Row inserted.\n", $stmt->affected_rows);
/* close statement and connection */
$stmt->close();
/* close connection */
}
$db->close();
?>