我是 php 新手,正在制作一个简单的登录系统。 当有人想注册时,他们会转到 register.html,然后是 insert.php。 下面的代码应该将表单中的数据添加到表中,但不会出现在其中。 我怀疑这可能是一行:$sql=INSERT INTO... 唯一出现的是代码底部的 echo 语句 我知道对此可能有一个简单的答案,但我仍然找不到。 谢谢,非常感谢任何帮助!
insert.php 的代码
<?php
$email=$_POST['email'];
$name=$_POST['name'];
$password=$_POST['password'];
$con = mysql_connect("localhost","user","p@ssword");
mysql_select_db("database", $con);
$sql="INSERT INTO table_name (email, name, password)
VALUES ('$email', '$name', '$password')";
echo"Thank you, you are now registered and can login on our homepage";
mysql_close($con);
?>
再次感谢!
最佳答案
您建立了连接并准备了查询,但实际上并没有执行它!您需要调用mysql_query() ,传入SQL和连接句柄,指示数据库执行语句。
<?php
$email=$_POST['email'];
$name=$_POST['name'];
$password=$_POST['password'];
$con = mysql_connect("localhost","user","p@ssword");
mysql_select_db("database", $con);
$sql="INSERT INTO table_name (email, name, password)
VALUES ('$email', '$name', '$password')";
mysql_query( $sql, $con ) or trigger_error( mysql_error( $con ), E_USER_ERROR );
echo"Thank you, you are now registered and can login on our homepage";
mysql_close($con);
?>
既然您说您是 PHP 的新手(并且可能是一般的数据库开发新手?),让我也为您指出 PHP tutorial on SQL injection 的方向,它解释了它是什么以及为什么您需要防范它 - 例如,您的示例代码很容易受到攻击。
关于php插入不向数据库添加数据,有什么想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4575599/