-1
我已經梳理了本網站不停地尋找解決方案,但仍然空手而歸。 這是問題所在,無論何時我使用下列INSERT INTO
語句,我的數據庫中都沒有插入任何內容,代碼運行順暢,但在一天結束時,我的數據庫仍然是空的(不包括手動插入的值)。 我還想指出,我運行了一個SELECT FROM
語句,它很好地返回了從數據庫手動插入值。 反正這裏的代碼:INSERT INTO聲明無法正常工作PHP/MySQLI
連接到數據庫
$link = mysqli_connect("localhost", "root", "", "prototype");
插入代碼
if ($error) echo "There were error(s) in your signup details:".$error;
else
{
$query = "SELECT * FROM `users` WHERE email = '".mysqli_real_escape_string($link, $_POST['email'])."'";
$result = mysqli_query($link, $query);
$results = mysqli_num_rows($result);
echo $results;
if ($results) echo " This email address is already taken. Would you like to log in?";
else
{
$query = "INSERT INTO `users`(`email`, `password`) VALUES ('".mysqli_real_escape_string($link, $_POST['email']).', '.md5(md5($_POST['email']).$_POST['password'])."')";
mysqli_query($link, $query);
echo "You've been registered!";
$_SESSION['id'] = mysqli_insert_id($link);
print_r($_SESSION);
// Redirect to logged in page
}
如果你使用'mysqli_query會發生什麼($ link,$ query)或者die('Unable to execute query。'。mysqli_error($ link));'而不是?它會給你一個有意義的錯誤嗎? – Blake
這裏有一個關於如何調試的想法:echo包含SQL語句的字符串的內容。然後仔細查看SQL語句。我想你會發現VALUES()包含單個字符串文字,而不是兩個字符串文字。這裏有另一個想法:檢查來自mysqli_query的返回以驗證語句執行是否成功。如果沒有,使用'mysqli_error'返回MySQL錯誤信息。這裏有另外一個想法:MD5算法適用於驗證消息的*完整性*,但它不是*密碼散列的好選擇。 – spencer7593
https://ericlippert.com/2014/03/05/how-to-debug-small-programs/是否有您想要問的*問題?或者只是提供狀態報告? – spencer7593