我有一个小问题。。。
我需要从表单将数据插入数据库。这很有效,但我有两个问题。
- 当我启动网站时,数据库中会添加一个空白行
- 当我启动网站时,我会收到每个要插入数据库的对象的错误消息。我得到的错误代码是
注意:未定义的变量:在第51行的C:''wamp''www''index.php中启动
注意:未定义的变量:在第52行的C:''wamp''www''index.php中启动
注意:未定义的变量:在第53行的C:''wamp''www''index.php中启动
我该如何解决这个问题?
这是我的代码:
<html>
<head>
<title>ARbeidstimer</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h2>Arbeidstimer</h2>
<div id ="register">
<form action="index.php" method="post">
<p>
<label>Start: </label>
<input type="text" name="start" class="field">
</p>
<p>
<label>Slutt:</label>
<input type="text" name="slutt" class="field">
</p>
<p>
<label for="telefon">Timer:</label>
<input type="text" name="timer" class="field">
</p>
<p>
<input type="submit" name="submit" value="send">
</p>
</form>
</div>
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "timer";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if(isset($_POST['submit'])) {
$start = $_POST['start'];
$slutt = $_POST['slutt'];
$timer = $_POST['timer'];
}
$sql = "INSERT INTO jobbing (id, start, slutt, timer)
VALUES ('', '$start', '$slutt', '$timer')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
</body>
</html>
您可以使用if检查提交状态,但不会将代码包裹在if括号中,这意味着即使没有提交,插入和连接仍然可以进行。
正确代码:
if(isset($_POST['submit'])) {
$start = $_POST['start'];
$slutt = $_POST['slutt'];
$timer = $_POST['timer'];
$sql = "INSERT INTO jobbing (id, start, slutt, timer)
VALUES ('', '$start', '$slutt', '$timer')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}
ID(如果它是自动递增的)不需要在INSERT INTO查询中。
您的if条件是检查是否设置了提交,但执行查询,因为if的大括号在查询之前关闭。所以只需移动if块末尾的大括号。
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if(isset($_POST['submit'])) {
$start = $_POST['start'];
$slutt = $_POST['slutt'];
$timer = $_POST['timer'];
$sql = "INSERT INTO jobbing (id, start, slutt, timer)
VALUES ('', '$start', '$slutt', '$timer')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
$conn->close();
?>