0

我在 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 将其插入数据库!

4

5 回答 5

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']}')";
于 2013-10-07T06:30:44.623 回答
0

CREATE TABLE由于语法错误,您的查询将失败。您必须检查查询结果,尤其是当下一个查询取决于上一个查询时(并且您正在执行创建数据库/表等操作)。

接下来要改变的是mysql_*. 此功能已弃用,您应该使用PDOor mysqli_*(它们不难学习,只需尝试)。

并且必须在您的脚本中进行一项更重要的更改。您正在获取用户输入并将其添加到查询中。不要那样做!您必须始终假设用户正在尝试破解您,因此必须检查和过滤所有输入的数据。prepared statements使用这些数据也很好。

于 2013-10-07T06:31:21.850 回答
0
if (mysql_query($con,$sql)){
            echo "Database user created successfully";
        } else {
            echo 'Error creating database - ' . mysql_error();
    }

你所有的 sql 语句都是一样的,看看你哪里出错了

于 2013-10-07T06:31:35.413 回答
0

更改您的代码(mysql_query($sql))而不是(mysql_query($con,$sql))

于 2013-10-07T06:35:34.650 回答
0

嗨试试这个代码,

   $con=mysql_connect("example.com","peter","abc123");

  $sql="CREATE DATABASE user";

  if (mysql_query($sql))
    {
        echo "Database user created successfully";
    }
于 2013-10-07T06:28:18.613 回答