2016-12-06 158 views
0

这一次让我难倒了几天。我有一个基本的PHP脚本来提交用户注册表单。在这个例子中,我只是看不到我在做什么错误,Web服务器运行PHP 7.0,并且日志中没有错误。mysqli_query似乎没有正确执行

<?php 
require_once('connect.php'); 
if(isset($_POST) && !empty($_POST)){ 
    $username = mysqli_real_escape_string($connection, $_POST['username']); 
    $email = mysqli_real_escape_string($connection, $_POST['email']); 
    $password =md5($_POST['password']); 

    $sql = "INSERT INTO 'login' (username, email, password) VALUES ('$username', '$email', '$password')"; 
    $result = mysqli_query($connection, $sql); 
    if($result){ 
     echo "User Rego Secusseflllgk"; 
    }else{ 
     echo "User rego faile"; 
    } 
} 
?> 

,我看到一对夫妇的这些已,但他们似乎做与同时使用myslq和mysqli的和其他人似乎没有对DB第一个连接。任何帮助将非常感激。我收到用户Rego失败回声

+0

'如果(mysqli_query($连接,$ SQL)){ 回声 “用户雷哥Secusseflllgk”; } else { echo“query error”.mysqli_error($ connection); }'也'删除'''在'login'周围。使用back-ticks –

+0

** 1。**您不应该使用'md5',而应该查看'password_hash()'的用法。 ** 2。**您已经使用MySQLi,学习如何使用*准备的语句*。 – Qirel

+0

此外,您的代码容易受到SQL注入的影响。改用准备好的语句。 – Thoaren

回答

1

您可能希望使用反引用而不是单引号'来包装您的表名称。

INSERT INTO `login` 

当查询失败时,打印错误消息很有用。你可以用mysqli_error做到这一点:

echo mysqli_error($connection); 
+1

''''是一个反勾引,'〜'是一个代字符串btw ;-) – Qirel

+0

谢谢Federkun ,我甚至没有注意到反拨和'之间的区别,哈哈仍然在我的键盘上寻找它。另外感谢您的意见打印错误 –

+1

该死的@Qirel,我总是混淆它们,谢谢 – Federkun

0

使用不带单引号的表名并尝试检查mysqli_error($connection)之后$result之后的mysqli错误。