PHP / MySQL插入数据库无法正常工作

时间:2015-08-21 19:44:55

标签: php mysql mysqli

我尽我所能来修复代码链接,但我尝试过的所有内容都给了我一个白色屏幕我知道这行代码是唯一一个代码是唯一一个语法错误,其余的代码是100%罚款。我试图使用$ _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'])."')";

6 个答案:

答案 0 :(得分:0)

你错过了一个点:

from pandas import *
import re

df = DataFrame({"emails": ["fake@gmail.com, example@gmail.com", 
                           "KingArthur@aol.com, none, SirRobyn@msn.net, TheBlackKnight@clintonserver.com"]})

at = re.compile(r"@", re.I)
def count_emails(string):
    count = 0
    for i in at.finditer(string):
        count += 1
    return count

df["count"] = df["emails"].map(count_emails)

df

答案 1 :(得分:0)

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

答案 2 :(得分:0)

尝试以下方法:

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

答案 3 :(得分:0)

为什么不让它变得简单呢?类似的东西:

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

答案 4 :(得分:0)

在VALUES()的第一行,你错过了一个点。

不正确:

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

正确:

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

答案 5 :(得分:0)

这是一个粗略的(未经测试的)样本,说明你的陈述如何作为预备陈述。

$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

以下是手册中的参考文献http://php.net/manual/en/mysqli-stmt.bind-param.php