我有以下简单的表格
简单的形式
TEST RUN FORM
<form method=post action='android.php'>
firstname:<input type='text' name='firstname'/><br>
secondname:<input type='text' name='secondname'/><br>
email:<input type='text' name='email'/><br>
password<input type='text' name='password'/><br>
<input type=submit name='submit' value='chekiii'/><br>
</form>
</body>
php文件是下面的文件,但它不会将任何数据输入数据库并且不会显示错误...实际上它在解析过错误代码后回显了“成功”消息。
<?php
$con = mysql_connect("www.######.com","#####","######");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("android", $con);
if ($_POST[submit])
{
$sql=mysql_query("INSERT INTO magic (firstname,secondname,email,password)
VALUES
('$_POST[firstname]','$_POST[secondname]','$_POST[email]','$_POST[password]')");
if (mysql_query(!$sql,$con))
{
die('Error: ' . mysql_error());
}
echo "success";
mysql_close($con);}
?>
我可能有什么错误?
答案 0 :(得分:0)
您是否尝试过回显$ sql查询,然后手动将其添加到数据库中?这可能会给你一个你可以使用的错误。我注意到的一件事是你的$ _POST变量没有引号:即使用$_POST['firstname']
代替$_POST[firstname]
。
哦,请在使用此表单之前在用户输入上添加一些检查...
答案 1 :(得分:0)
这不会起作用
$sql=mysql_query("INSERT INTO magic (firstname,secondname,email,password)
VALUES ('$_POST[firstname]','$_POST[secondname]','$_POST[email]','$_POST[password]')");
使用此
"INSERT INTO magic (firstname,secondname,email,password)
VALUES ('".$_POST['firstname']."','".$_POST['secondname']."','".$_POST['email']."','".$_POST['password']."')"
也改变了这个:
if (mysql_query(!$sql,$con)){
die('Error: ' . mysql_error());
}
到
if (!mysql_query($sql,$con)){
die('Error: ' . mysql_error());
}
您的代码中存在错误
<?php
$con = mysql_connect("www.######.com","#####","######");
if (!$con){
die('Could not connect: ' . mysql_error());
}
mysql_select_db("android", $con);
if ($_POST['submit']){ //$_POST['submit'] NOT $_POST[submit]
$sql=mysql_query("INSERT INTO magic (firstname,secondname,email,password)
VALUES ('".$_POST['firstname']."','".$_POST['secondname']."','".$_POST['email']."','".$_POST['password']."')");
if (mysql_query(!$sql,$con)){
die('Error: ' . mysql_error());
}
echo "success";
mysql_close($con);
}
答案 2 :(得分:0)
您的错误是将$ _POST变量传递到查询字符串中。
首先,您需要在将数据放入查询之前对其进行清理,或者您对SQL注入攻击持开放态度。
其次,修复错误,在$ _POST变量周围添加{
和}
,以便可以在双引号字符串中对它们进行求值。您还缺少$ _POST变量中的单引号。
$sql=mysql_query("INSERT INTO magic (firstname,secondname,email,password)
VALUES
('{$_POST['firstname']}','{$_POST['secondname']}','{$_POST['email']}','{$_POST['password']}')");
有关详细说明,请参阅php variables文档。
答案 3 :(得分:0)
问题在于对数据库的引用。由我的主机安装CPANEL我没有意识到有数据库命名前缀,我不知道这是一个菜鸟(仍然是)。感谢大家。还在学习。