创建表并向其添加数据不起作用

时间:2014-02-14 21:50:18

标签: php mysql sql

我正在尝试用一些表创建数据库,表中的值并在phpMyAdmin中检查它们。我能够创建表和数据库,但不能创建值

2。)当我添加isset $_post['submit']变量时,单击提交按钮时,没有任何内容被创建。我没有看到语法错误吗?

<html>
    <body>

        <p> welcome to my Page
            Please insert the data below
            <br>
            <br>

        <form action="input.php" method="post">
            <p> Name: <input type="text" name="name">
            <p> Age: <input type="text" name="age">
            <p> Address: <input type="text" name="address">
            <p> Email: <input type="text" name="email">

                <input type="submit" value="Send!" name="submit">
        </form>



        <?php

        if(isset($_POST['submit'])){

        //connects to the sql database
        $con = mysql_connect("localhost", "willc86", "tigers330");
        if (!$con) {
            echo 'can not connect to Database' . "<br>";
        }

        //creates the database in mySQL
        $db = mysql_query("CREATE DATABASE form");
        if (!$db) {
            echo 'Did not create database';
        }

        //select the database and connect to it. on where you want to create tables.
        mysql_select_db("form", $con);

        //create the table once "form database" is selected
        $table = "CREATE TABLE users (
        Name varchar(30),
        Age varchar(30),
        Address varchar(30),
        Email varchar(30)
        )";
         mysql_query($table,$con);



        //insert the data from the form
        $value= "INSERT INTO users (Name, Age, Address, Email)
            VALUES ('$_POST[name]','$_POST[age]','$_POST[address]','$_POST[email]')";


        mysql_query($value,$con);

        mysql_close();

        }//end of submit

        ?>

    </body>
</html>

4 个答案:

答案 0 :(得分:0)

你的表单操作是input.php,你的文件是否也叫做input.php?否则,当您提交表单而不是在页面上执行PHP时,您将执行input.php。

答案 1 :(得分:0)

我认为用户willc86没有创建数据库的访问权限。

第二,你的脚本不正确,因为它为每个“用户添加”操作运行并尝试创建数据库和表。

您可以在phpadmin中创建一次,并在脚本中仅使用插入。

答案 2 :(得分:0)

在此突出显示特定错误没有意义,因为其他人不太可能有完全相同的问题。最好只为您提供调试问题的工具/方法。

而不是:

mysql_query($table,$con);

尝试:

$res = mysql_query($table,$con);
if($res === false){
    throw new Exception(mysql_error($conn));
}

更好的是,使用PDO

答案 3 :(得分:0)

首先,如果此文件名为input.php,您的代码就可以了。可能没有什么理由,一个是你有不正确的凭据,第二个是用户没有权利创建表,因为它转到Phpmyadmin并给予用户所有权利。

其次,最重要的是,使用Prepared语句或mysqli,否则你很容易受到SQL注入

为此,请阅读这篇文章

How can I prevent SQL injection in PHP?