我正在使用php创建一个数据库并在html中查看表格。在我的编码中,我编写了一个“添加/插入”函数,用于在表格中插入一个提交按钮。当选择提交按钮时,它会转到上面列出的错误消息。我不知道我改变了什么,我昨晚(在另一台电脑上)运行了这个代码,一切正常!任何人都有任何想法??
以下是我的插入脚本的代码,用于TABLE,INSERT信息,add.html和insert.php
<?php
$con=mysqli_connect("localhost","root","","Franchise_Call_Log");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Create table
$sql="CREATE TABLE caller_info(caller_id int(11) unsigned auto_increment primary key not null,
Firstname varchar(35) not null, Lastname varchar(35) not null,
Franchise varchar(25) not null)";
// Execute query
if (mysqli_query($con,$sql))
{
echo "Table caller_info created successfully";
}
else
{
echo "Error creating table: " . mysqli_error($con);
}
?>
<?php
$con=mysqli_connect("localhost","root","","Franchise_Call_Log");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO caller_info (Firstname, Lastname, franchise)
VALUES ('Peter', 'Griffin',Minneapolis)");
mysqli_query($con,"INSERT INTO caller_info (Firstname, Lastname, Franchise)
VALUES ('Maggie', 'DeJesus',Virginia)");
mysqli_close($con);
?>
<html>
<body>
<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname">
Lastname: <input type="text" name="lastname">
Franchise: <input type="text" name="franchise">
<input type="submit">
</form>
</body>
</html>
<?php
$con=mysqli_connect("localhost","root","","Franchise_Call_Log");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="INSERT INTO caller_info (Firstname, Lastname, Franchise)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[franchise]')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
*的 更新 我能够通过更改我的文件的名称来修复上面的问题,但现在再次运行所有内容我遇到了这条消息:
注意:未定义的索引:第11行的C:\ xampp \ htdocs \ Final Tests \ insert.php中的名字
注意:未定义的索引:第11行的C:\ xampp \ htdocs \ Final Tests \ insert.php中的姓氏
注意:未定义的索引:第11行的C:\ xampp \ htdocs \ Final Tests \ insert.php中的特许经营权 已添加1条记录
虽然只是一个通知,但在选择表时,新记录不存在。某个地方有一种脱节,我没有抓住。有什么想法吗?
答案 0 :(得分:0)
您使用
$sql="INSERT INTO caller_info (Firstname, Lastname, Franchise)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[franchise]')";
但是你引用$ _POST值(例如:$ _POST [xyz]),你没有引用xyz名称。它应该是:
$sql="INSERT INTO caller_info (Firstname, Lastname, Franchise)
VALUES
('{$_POST['firstname']}','{$_POST['lastname']}','{$_POST['franchise']}')";
我在$ _POST ['xyz']周围添加了{} -brackets,因此php可以正确识别变量。当然,您现在需要进行SQL注入(在How can I prevent SQL injection in PHP?阅读更多内容)
答案 1 :(得分:0)
如果您将表单提交到同一页面,请将操作字段留空:
<form action="" method="post">
指定提交按钮的名称:
<input type="submit" name="submit">
如果设置了提交(按下提交),则将值插入数据库:
if(isset($_POST['submit'])){
$sql="INSERT INTO caller_info (Firstname, Lastname, Franchise)
VALUES('".$_POST['firstname']."','".$_POST['lastname']."',
'".$_POST['franchise']."')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
}