使用php脚本连接到数据库

时间:2013-10-07 06:19:57

标签: php mysql sql

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

5 个答案:

答案 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_*。不推荐使用此功能,而应使用PDOmysqli_*(它们不难学,只需尝试)。

还必须在脚本中进行一项更重要的更改。您正在获取用户输入并将其添加到查询中。不要那样做!您必须始终假设用户正在尝试破解您,因此必须检查和过滤所有输入的数据。使用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))