2016-12-06 152 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錯誤。