我正在尝试制作一份注册表格。我可以成功连接到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>
答案 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')";