2013-07-29 4 views
-2

Следующая MySQLi запрос не выполняет, так как я просматриваю таблицу 'пользователей и не содержит каких-либо записей:MySQLi не проводки в базу данных

//connection.php// 

$db_connect = mysqli_connect('myremotehost', 'myremoteuser', 'mypass', 'mydatabase'); 

if(mysqli_connect_errno($db_connect)){ 
echo mysqli_connect_error(); 
exit(); 
} 

// 

include 'database/connection.php'; 
$username = $_POST['username']; 
$password = md5($_POST['password']); 
$email = $_POST['email']; 
$email_code = md5($_POST['username'] + microtime()); 
$gender = $_POST['gender']; 
$ip = getenv('REMOTE_ADDR'); 

$sql = "INSERT INTO `users` (username, password, email, email_code, gender, ip, signup, lastlogin, notescheck) VALUES('$username','$password','$email','$email_code','$gender','$ip',NOW(),NOW(),NOW())"; 
$query = mysqli_query($db_connect, $sql); 



//below are the forms with their respective 'input names' that are equal to: username, email and gender (values 'm' & 'f'). 

//The action of the actual form is action="" this file. 

Я знаю, что этот код выполняется, так как непосредственно под переменные $ sql и $ query у меня есть другой код, который создает папку в каталоге/users/после выполнения, и всякий раз, когда я проверяю свой онлайн-каталог, он создается, но опять же проблема заключается в том, что запрос ничего не публикует в базе данных.

Любые предложения?

Спасибо, ребята!

+0

В: Почему у вас есть «пользователи» внутри backticks? Это не зарезервированное слово. –

+2

Это не наносит вреда. – Sven

+1

Перед тем, как вы напишете ** какой-нибудь ** код взаимодействия с SQL, вы должны прочитать [надлежащее SQL-экранирование] (http://bobby-tables.com/php), чтобы избежать серьезных [SQL-инъекций] (http: // bobby-tables.com/). При использовании 'mysqli' вы должны использовать [' bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), чтобы вставлять в ваш запрос такие значения, как '$ username', в основном избегая этих проблем. – tadman

ответ

0

Добавьте эту строку после запроса:

if (!$query) { die(mysqli_error($db_connect)); } 

и посмотреть, если он печатает что-нибудь. Действуйте в соответствии с сообщением об ошибке, то есть, по крайней мере, добавьте его в свой вопрос.

+0

[mysqli или умереть, нужно ли умирать?] (Http://stackoverflow.com/questions/15318368/mysqli-or-die-does-it-have-to-die) –

+1

Если пользователь не получает добавлено, жизнь бессмысленна. – Sven

+0

Профессиональный PHP-разработчик. Безопасность. Понимаю. –

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