PHP/MySQL插入数据库不工作

PHP/MySQL插入数据库不工作,php,mysql,mysqli,Php,Mysql,Mysqli,我尽我所能修复代码链接,但我所做的一切都给了我一个白色的屏幕,我知道这行代码是唯一有语法错误的代码,其余的代码是100%好的。我正在尝试使用$u POST和md5哈希法从表单中插入姓名、电子邮件和密码 $link=连接到mySQL数据库 $query="INSERT INTO 'users' ('name', 'email', 'password') VALUES( '".mysqli_real_escape_string($link, $_POST['name'])"', '".mysqli_

我尽我所能修复代码链接,但我所做的一切都给了我一个白色的屏幕,我知道这行代码是唯一有语法错误的代码,其余的代码是100%好的。我正在尝试使用$u POST和md5哈希法从表单中插入姓名、电子邮件和密码

$link=连接到mySQL数据库

$query="INSERT INTO 'users' ('name', 'email', 'password')
VALUES(
'".mysqli_real_escape_string($link, $_POST['name'])"',
'".mysqli_real_escape_string($link, $_POST['email'])."',
 '".md5(md5($_POST['email']).$_POST['password'])."')";
你漏掉了一点:

$query="INSERT INTO users (name, email, password) 
        VALUES('" . mysqli_real_escape_string($link, $_POST['name']) . "', '" . mysqli_real_escape_string($link, $_POST['email']) . "', '" . md5(md5($_POST['email']) . $_POST['password']) . "')";
请尝试以下操作:

$name = mysqli_real_escape_string($link, $_POST['name']);
$email = mysqli_real_escape_string($link, $_POST['email']);
$password = hash('sha512', md5( md5( $_POST['email'] ).$_POST['password'] ) );

$query = "INSERT INTO `users` (`name`, `email`, `password`) VALUES('$name','$email', '$password')";
echo 'hashed: '.hash('sha512', md5( md5( $_POST['email'] ).$_POST['password'] ) ).'<br>md5(): '.md5( md5( $_POST['email'] ).$_POST['password'] );
请注意表名和列名周围的反勾号。还应注意以下内容的不同之处:

$name = mysqli_real_escape_string($link, $_POST['name']);
$email = mysqli_real_escape_string($link, $_POST['email']);
$password = hash('sha512', md5( md5( $_POST['email'] ).$_POST['password'] ) );

$query = "INSERT INTO `users` (`name`, `email`, `password`) VALUES('$name','$email', '$password')";
echo 'hashed: '.hash('sha512', md5( md5( $_POST['email'] ).$_POST['password'] ) ).'<br>md5(): '.md5( md5( $_POST['email'] ).$_POST['password'] );
echo'hashed:'.hash($sha512',md5(md5($邮政['email'])。$邮政['password'])。
md5():'.md5(md5($邮政['email'])。$邮政['password']);
为什么不简单一点呢?比如:

$name  =   mysqli_real_escape_string($link, $_POST['name']);
$mail  =   mysqli_real_escape_string($link, $_POST['email']);
$pass  =   md5(md5($_POST['email']).$_POST['password']);

$query="INSERT INTO `users` (`name`, `email`, `password`) VALUES('$name','$mail', '$pass')";

在第一行VALUES()中,您遗漏了一点

不正确:

'".mysqli_real_escape_string($link, $_POST['name'])"',
正确:

'".mysqli_real_escape_string($link, $_POST['name'])."',
下面是一个粗略的(未经测试的)示例,说明您的声明可能看起来是一份准备好的声明

$stmt = mysqli_prepare($link, 
"INSERT INTO `users` (`name`, `email`, `password`) VALUES (?, ?, ?)");
mysqli_stmt_bind_param($stmt, 'sss', $_POST['name'], $_POST['email'], md5(md5($_POST['email']).$_POST['password']));
//mysqli_stmt_execute($stmt); //<--to execute query, use where you execute
$stmt=mysqli\u prepare($link,
“插入到`users`(`name`、`email`、`password`)值(?、、?)”;
mysqli_stmt_bind_param($stmt,$sss',$POST['name',$POST['email'],md5(md5($POST['email'])。$POST['password']);

//mysqli_stmt_execute($stmt)//
md5()
是不安全的。一开始应该是
hash('sha512',$password)
但更好的是。当然,您可以使用
md5()
插入“users”(`name`、`email`、`password`)
。任何时候从用户提供的字符串构造SQL查询都可能重复,这会带来SQL注入的风险(无论您如何“清理”字符串)。这是100%可以避免的。分析错误:语法错误,意外的T_ELSE,应为“,”或“;”在第30行的/home/sites/testdomain.io/html/index.php中