无法在mySQL表中插入

时间:2015-01-28 18:27:45

标签: php mysql forms

我正在尝试制作一份注册表格。我可以成功连接到mySQL数据库但是我不能在我的表中插入任何名为" hackers"从我的HTML表单。这是我的表单和我的PHP脚本。

我还尝试在$ sql中手动插入数据以查看问题是否在表单中,但是$ sql也没有添加数据。

非常感谢您的帮助!!!!!!!

<?php
include"config.php";

$insert = 'INSERT INTO hackers (name,email, school, grad-year)  VALUES('$_POST['name']','$_POST['email']','$_POST['school']','$_POST['gradYear']')';


$sql= 'INSERT INTO mydatabase_name.hackers (name,email, school, grad-year) VALUES ('text', 'text', 'text', 'text')';

mysql_query($insert);
mysql_query($sql);


?>

我的表格:

<form method = "post" action ="process.php" >
    <table id ="registration_form">
    <tr>
        <td>name</td>
        <td><input type= "text" name="name"/></td>
    </tr>
     <tr>
        <td>email</td>
        <td><input type= "text" name="email"/></td>
    </tr>
    <tr>
        <td>school</td>
        <td><input type= "text" name="school"/></td>
    </tr>
         <tr>
        <td>graduation year</td>
        <td><input type= "text" name="gradYear"/></td>
    </tr>

    <tr>
        <td><input type= "submit" name="submit" value ="Submit"/></td>
    </tr>
   </table>
</form>

3 个答案:

答案 0 :(得分:2)

您需要与.连接,在外部使用双引号,在值上添加单个值。例如:

"INSERT INTO hackers (name,email, school, grad-year)  VALUES('".$_POST['name']."','".$_POST['email']."','".$_POST['school']."','".$_POST['gradYear']."')"

虽然我想要注意,这不是一个好主意,因为你很容易进行SQL注入。您希望在执行之前先转义或准备查询。

对于您手动输入的字符串,您遇到了类似的问题。在这种情况下,一个简单的解决方法是在字符串的外部使用双引号,在内部使用单引号,问题是此ES ('te在此处关闭查询的字符串:$sql= 'INS

"INSERT INTO mydatabase_name.hackers (name,email, school, grad-year) VALUES ('text', 'text', 'text', 'text')"

答案 1 :(得分:1)

$name = $_POST['name'];
$school= $_POST['school'];
$email = $_POST['email'];
$grad_year = $_POST['gradYear'];  //watch out for mysql injection here

$insert = "INSERT INTO hackers (name,email, school, grad-year)  VALUES('$name','$email','$school','$grad_year')";

$sql= "INSERT INTO mydatabase_name.hackers (name,email, school, grad-year) VALUES ('text', 'text', 'text', 'text')";

这应该有效。留意正确的引用。

答案 2 :(得分:0)

你的问题是报价。以下示例是正确的,适应您的。

$sql = "INSERT INTO mydatabase_name.hackers (name, email) 
                                     VALUES ('text', '$someVariable')";