嘿伙计们,我知道这可能只是一个简单的 sql 语句,但我无法找出问题所在。它将用户添加到数据库,但不会添加用户的名字。如果我切换 SQL 语句,例如在名字之前有用户名和电子邮件,则不会插入密码切换名称和电子邮件。有谁知道如何解决此问题并将所有信息插入数据库中的正确表中。
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
$db_server = "server";
$db_username = "name";
$db_password = "pass";
$con = mysql_connect($db_server, $db_username, $db_password);if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$database = "Account_Holder";
$er = mysql_select_db($db_username);
if (!$er)
{
print ("Error - Could not select the database");
exit;
}
// table name
$tbl_name=Account_Holder;
// Random confirmation code
//$confirm_code=md5(uniqid(rand()));
// values sent from form
$firstName=$_POST['firstName'];
$email=$_POST['email'];
$password=$_POST['password'];
$username=$_POST['username'];
// Insert data into database
$sql="INSERT INTO $tbl_name(firstname, username, email, password)VALUES('$firstname', '$username', '$email', '$password')";
$result=mysql_query($sql);
echo "You have been added to the database! You may now log on using your username."
?>
<a href ="login.html"> Login Page </a>
</body>
</html>
最佳答案
我的猜测是您的意思是 $_POST['firstname']
而不是 $_POST['firstName']
。
顺便说一句,在像现在这样将用户输入放入数据库之前,您确实需要先对其进行清理。编写针对此代码的 SQL 注入(inject)攻击是微不足道的。首先,通过 mysql_real_escape_string() 运行用户提供的值。就目前而言,如果用户输入包含撇号/单引号,您的代码将无法工作。
如果您认为问题是查询生成了错误,请在 mysql_query()
之后使用 mysql_error()
来查看是否存在错误。如果没有错误,它将返回一个空字符串。否则,将返回错误。
此外,如果可能的话,我强烈建议在 MySQL 中使用哈希函数存储密码(使用 PASSWORD()
)。
关于php - 插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8283101/