我在HTML中创建了一个表单,并将操作设置为php脚本。我对php很新,想知道是否有人可以帮我解决这个问题?我需要编写一个脚本来将表单中的信息添加到数据库中。我还需要创建数据库和表。我在网上做了很多阅读,我仍然无法做到。这是我的脚本。请告诉我我犯了什么错误。谢谢你的帮助。
<?php
$con=mysql_connect("example.com","peter","abc123","my_db");
$sql="CREATE DATABASE user";
if (mysql_query($con,$sql)) {
echo "Database user created successfully";
}
$sql="CREATE TABLE Persons(PID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(PID),firstName CHAR(30),lastName CHAR(30),age INT, dateofbirth DATE, email CHAR(30)";
if (mysql_query($con,$sql)) {
echo "connected to database";
}
$sql="INSERT INTO Persons (firstName, lastName, age, dateofbirth, email) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[age]','$_POST[dateofbirth]','$_POST[email]')";
if (mysql_query($con,$sql)) {
echo "added to database";
}
mysql_close($con);
?>
我尝试了所有建议的答案,仍然无法做到。有人可以提供代码吗?我需要从表单中获取数据并使用php将其插入数据库!
答案 0 :(得分:0)
您好,请尝试使用此代码,
$con=mysql_connect("example.com","peter","abc123");
$sql="CREATE DATABASE user";
if (mysql_query($sql))
{
echo "Database user created successfully";
}
答案 1 :(得分:0)
1.-不要使用 mysql_ 函数,因为已弃用,请使用 mysqli _ 函数或PDO代替
2.-我猜你有几个错误,首先你在连接脚本上选择一个数据库my_db
,但是你在下一行创建了另一个数据库......这种行为很奇怪。如果每次都执行此脚本,那么您应该更改代码(每次都无法创建数据库和表。
在插入字符串中,您的邮政编码有错误,请尝试:
$sql="INSERT INTO Persons (firstName, lastName, age, dateofbirth, email) VALUES ('{$_POST['firstname']}','{$_POST['lastname']}','{$_POST['age']}','{$_POST['dateofbirth']}','{$_POST['email']}')";
答案 2 :(得分:0)
由于语法错误,您的CREATE TABLE
查询将失败。您必须检查查询结果,尤其是当下一个查询依赖于之前的查询时(并且您正在执行创建数据库/表等操作)。
接下来要改变的是mysql_*
。不推荐使用此功能,而应使用PDO
或mysqli_*
(它们不难学,只需尝试)。
还必须在脚本中进行一项更重要的更改。您正在获取用户输入并将其添加到查询中。不要那样做!您必须始终假设用户正在尝试破解您,因此必须检查和过滤所有输入的数据。使用prepared statements
这样的数据也很好。
答案 3 :(得分:0)
if (mysql_query($con,$sql)){
echo "Database user created successfully";
} else {
echo 'Error creating database - ' . mysql_error();
}
所有sql语句都可以看到你出错的地方
答案 4 :(得分:0)
更改代码(mysql_query($sql))
而不是(mysql_query($con,$sql))