Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php can';t在mySQL表中插入_Php_Mysql_Forms - Fatal编程技术网

Php can';t在mySQL表中插入

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

我正在做一份登记表。我可以成功连接到mySQL数据库,但我不能从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>

名称
电子邮件
学校
毕业年

您的问题是引号。下面的例子是正确的,适合你的

$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')";