2016-06-02 10 views
0

Я написал следующий код для вставки данных в таблицу моей базы данных, но, к сожалению, он не работает. У меня есть двойной и трехкратно проверенный код, и ошибок нет. Консоль также не отображается.Почему мой код не вставляет данные в базу данных?

Я не ошибочно написали какие-либо детали, необходимые для подключения к базе данных, и переменные также верны, поэтому я затрудняюсь.

Если кто-то может помочь, это будет глубоко оценено.

Мой код:

<?php 
function obfuscate($type, $data) { 
    if ($type == "PIN"): 
     $f_int = (int)md5($data); 
     $data = str_split($data); 
     $rev = implode("", array_reverse($data)); 
     $sum = array_sum($data) + $f_int; 
     $data = implode("", $data); 
     $data += $sum + $rev + 1026; 

     // Keep the first four digits if the result is longer 
     if (strlen($data) > 4): 
      $data = substr($data, 0, 4); 
     endif; 
     return $data; 
    elseif ($type == "password"): 
     $data = password_hash($data, PASSWORD_DEFAULT, ['cost' => 12]); 
     return $data; 
    endif; 
} 

function insert_user($username, $email, $password, $PIN, $Account_Type, $Account_Status, $Referrer, $Balance) { 
    // Connect to the server and the database or show error 
    $connection = mysqli_connect("localhost", "root", "") or die("Couldn't connect to the server."); 
    mysqli_select_db($connection, "Calisoft_flu_db") or die("Couldn't connect to the database."); 

    // Sanitise the data 
    $username = mysqli_real_escape_string($connection, $username); 
    $email = mysqli_real_escape_string($connection, $email); 
    $password = mysqli_real_escape_string($connection, $password); 
    $PIN = mysqli_real_escape_string($connection, $PIN); 

    // Get the rest of the data 
    $Registration_Date = date("Y-m-d"); 

    // Obfuscate password and PIN 
    $password = obfuscate("password", $password); 
    $PIN = obfuscate("PIN", $PIN); 

    // Make query and insert data to database 
    $query = "INSERT INTO `users` (`ID`, `Username`, `Email`, `Password`, `PIN`, `Registration_Date`, `Account_Type`, `Account_Status`, `Referrer`, `Balance`) VALUES ('NULL', '$username', '$email', '$password', '$PIN', '$Registration_Date', '$Account_Type', '$Account_Status', '$Referrer', '$Balance')"; 
    $registered = mysqli_query($connection, $query); 
    if ($registered) { 
     echo "Register successful!"; 
    } 
    // End the connection 
    mysqli_close($connection); 
} 

insert_user("@user1", "[email protected]", "user12345678", "1234", "Member", "Active", "0", "0"); 
?> 
+0

Echo ваш запрос и этот запрос в тузд консоли и проверить результаты. – Kamran

+0

Получаете ли вы «Зарегистрировать успешный!»? Вы также должны проверить статус запроса. – chris85

+1

Пожалуйста, пожалуйста, пожалуйста. Пока еще рано, изучите параметризованные запросы. –

ответ

2

Вы вставляете значение строки «NULL» в ваш первичный ключ, вы либо удалить кавычки «» или опустить идентификатор из запроса.

Удалить Котировки:

$query = "INSERT INTO `users` (`ID`, `Username`, `Email`, `Password`, `PIN`, `Registration_Date`, `Account_Type`, `Account_Status`, `Referrer`, `Balance`) VALUES (NULL, '$username', '$email', '$password', '$PIN', '$Registration_Date', '$Account_Type', '$Account_Status', '$Referrer', '$Balance')"; 

или удалить столбец ID:

$query = "INSERT INTO `users` (`Username`, `Email`, `Password`, `PIN`, `Registration_Date`, `Account_Type`, `Account_Status`, `Referrer`, `Balance`) VALUES ('$username', '$email', '$password', '$PIN', '$Registration_Date', '$Account_Type', '$Account_Status', '$Referrer', '$Balance')"; 
+0

Этот ответ сделан, возможно, исходя из предположения, что 'ID' не является' varchar' или любым строковым типом столбца. Вам лучше спросить OP, какой тип столбца «ID». – Marcus

+1

@ Маркус, он прав. В моем случае идентификатор - это автоинкрементное целое число, и его решение отлично работает. Спасибо Шади. –

+1

Хороший материал. FYI @AngelPolitis, в будущем, он рассчитывает предоставить как можно больше актуальной информации. В случае запросов к базе данных предоставление данной схемы таблицы может сэкономить много времени. Рад, что вы все разобрались. – Marcus

Смежные вопросы