Php can';t在mySQL表中插入
我正在做一份登记表。我可以成功连接到mySQL数据库,但我不能从html表单中向名为“黑客”的表插入任何内容。这是我的表单和php脚本 我还尝试在$sql中手动插入数据,以查看问题是否在表单中,但$sql也不添加数据 非常感谢你的帮助Php can';t在mySQL表中插入,php,mysql,forms,Php,Mysql,Forms,我正在做一份登记表。我可以成功连接到mySQL数据库,但我不能从html表单中向名为“黑客”的表插入任何内容。这是我的表单和php脚本 我还尝试在$sql中手动插入数据,以查看问题是否在表单中,但$sql也不添加数据 非常感谢你的帮助 <?php include"config.php"; $insert = 'INSERT INTO hackers (name,email, school, grad-year) VALUES('$_POST['name']','$_POST['emai
<?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>
名称
电子邮件
学校
毕业年
您的问题是引号。下面的例子是正确的,适合你的
$sql = "INSERT INTO mydatabase_name.hackers (name, email)
VALUES ('text', '$someVariable')";
您需要连接到
,在外部使用双引号,并使用单值进行增值。例如:
"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')"
这应该行得通。请注意正确的引号。您有错误吗?如果没有,请确保您的php.ini文件中有
display\u errors=on
。或者您可以通过`ini\u set(“display\u errors”,1)进行设置`就在配置的include之后。如果有错误,您会看到它。请将其发布到这里以供进一步调查。这些是我得到的错误。非常感谢!!连接成功警告:mysql_query():第16行的/home4/malonzoc/public_html/hackholyoke/test/process.php中无法建立到服务器的链接警告:mysql_query():第17行的/home4/malonzoc/public_html/hackholyoke/test/process.php中的用户“vjanardhan”@“localhost”(使用密码:否)的访问被拒绝“grad减去年份”。我看不出有人怎么会错过。谢谢!我尝试了你的建议,但仍然不起作用。我正在通过phpMyadmin进行通信。你认为我缺少一个配置吗?@Nach好的,看看我的编辑是否有效。当添加值时,你需要这样做:values('someValue'))
,带单引号。我给出的示例中没有它们,因为它们用于字符串本身。@Nach也有Pankaj示例可以使用,这是我重新开始的方式,因为它在查询中更干净(在定义项时,您希望通过转义项)。我收到这些错误。已成功连接警告:mysql_query():无法在第16行的/home4/malonzoc/public_html/hackholyoke/test/process.php中建立到服务器的链接警告:mysql_query():拒绝用户“vjanardhan”@“localhost”的访问(使用密码:否)在第17行的/home4/malonzoc/public_html/hackholyoke/test/process.php中
$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')";