我遇到一个小问题我正在尝试将数据插入mysql
数据库但是当我在input box
中添加数据时,记录显示为blank entry
,我哪里错了。谢谢团队。
我的代码如下:
这是我的索引文件
文件名:index.php
<?php
// link to the page where the database is being connected
require_once('php/db_connection.php');
// set up your query within a variable to make it easier to work with
$query = "SELECT * FROM people"; //this will select everything out of our database(artificial_test1) from the 'people' table.
$result = mysql_query($query); //this will conect to the database and select the table to run the query on and return the values from that table.
// now we will set up a while loop to retrieve the information from the database table.
while ($person = mysql_fetch_array($result)) {
echo "<h3>". $person['name'] ."</h3>"; // this line will fetch the query result that is stored in the $person variable and find the row ['name'] and display it on screen
echo "<p>". $person['info'] ."</p>";
}
?>
<!-- below we will set up a form to add users to the database -->
<h1>Create a user</h1>
<form action="create_user.php" method="post">
<label for="">Name</label><input type="text" name"name"><br />
<label for="">user info</label><input type="text" name"info">
<br />
<input type="submit" name="submit" value="submit">
</form>
这是创建用户文件:
文件名:create_user.php
<?php
include ('php/db_connection.php');
$name = $_POST['name'];
$info = $_POST['info'];
if (!$_POST['submit']) {
echo "please fill out the form";
header('Location: index.php');
}else{
mysql_query("INSERT INTO people (`ID`, `name`, `info`) VALUES (NULL, '$name', '$info')") or die(mysql_error());
echo "User has been added!";
mysql_close();
header('Location: index.php');
}
?>
这是我的数据库连接文件:
文件名:db_connection.php
<?php
// set up variables relating to database connection
$db_host = 'localhost'; // this defines the type of server we are connecting to ie:. we are using localhost because we are using a local server to connect to.
$db_user = 'root'; // the user that you are using to log into the database with. default user in our case is 'root'.
$db_password = ''; // if there is a password on the database then that will go in this variable, but we dont have one on the local servers db so we set it to nothing.
$database = 'artificial_test1'; // this is where we select the database that we are going to use.
// this is where we connect to the database we use the php function mysql_connect.
// mysql_connect function will take 3 arguments inside the parentheses and will look like
// this ie:. mysql_connect(database host, database user, database password).
$connect_db = mysql_connect($db_host, $db_user, $db_password);
// now we have to select the database that we want to start using.
// For this we will make use of the php function mysql_select_db(database_name)
// which will take 1 argument which is the database_name we want to work with
mysql_select_db($database);
?>
答案 0 :(得分:5)
您忘记了输入名称属性中的等号 -
<label for="">Name</label><input type="text" name="name"><br />
<label for="">user info</label><input type="text" name="info">
此外,您应该从mysql切换到mysqli,因为不推荐使用mysql函数。您还需要保护自己免受可能的SQL Injection Attacks
答案 1 :(得分:1)
在您的表单中,name"name"
应为name="name"
而name"info"
应为name="info"
答案 2 :(得分:0)
name属性存在问题,您忘记了add = sign
<label for="">Name</label><input type="text" name"name"><br />
<label for="">user info</label><input type="text" name"info">
应该是
<label for="">Name</label><input type="text" name="name"><br />
<label for="">user info</label><input type="text" name="info"/>