我有个奇怪的问题。我在学习准备好的陈述。我创建了一个带有一个字段nama的简单页面和一个带有列nama的表。我只想看到数据输入。当我按submit按钮时,表中有数据,但是每次我插入数据时它都会显示1。所有的行都显示相同的图形。有人能指引我渡过难关吗?
<?php
/**
* Start the session.
*/
session_start();
require 'connect-test.php';
$nama= isset($_POST['nama']);
$stmt=$conn->prepare("INSERT INTO test (nama) VALUES (?)");
$stmt->bind_param("s", $nama);
$stmt->execute();
if (!$stmt)
{ printf("Errormessage: %s\n", $mysqli->error);}
$stmt->close();
$conn->close();
?>
<html>
<body>
<form name="form2" method="post" action="test-deletenanti.php">
<p>Name :
<input type="text" name="nama" id="nama">
</p>
<p>
<input type="submit" name="button" id="button" value="Submit">
</p>
</form>
</body>
</html>发布于 2015-12-24 07:14:37
变化
$nama = isset($_POST['nama']);至:
$nama = $_POST['nama'];isset根据变量是否设置返回true或false,所以这就是您要放入$nama的内容,而不是输入的实际值。
在整个过程中,您应该在isset()语句中使用if:
if (isset($_POST['nama'])) {
$nama = $_POST['nama'];
// rest of code to insert into DB
}发布于 2015-12-24 07:15:28
isset()
如果var存在并具有NULL以外的值,则返回TRUE,否则返回FALSE。
您的条件为真,并将其设置为1。
$nama= isset($_POST['nama']);只要换到
if (isset($_POST['nama'])) {
$nama = $_POST['nama'];
$stmt = $conn->prepare("INSERT INTO test (nama) VALUES (?)");
$stmt->bind_param("s", $nama);
$stmt->execute();
if (!$stmt) {
printf("Errormessage: %s\n", $mysqli->error);
}
$stmt->close();
$conn->close();
}https://stackoverflow.com/questions/34448779
复制相似问题