2015-11-17 2 views
-3

Я вижу, что есть похожие вопросы, но никто, кажется, не исправил мою проблему.mysqli_query ожидает, что paramater 1 будет mysqli, boolean задано

Я регистрация нового пользователя, но я получаю Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\wamp\www\ticketing\newcustomer.php on line 11

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

<?php 
session_start(); 
$con = mysqli_connect("localhost", "root", "", "ticketing"); 
$username = $_POST['username']; 
$password = $_POST['pass']; 
$fullname = $_POST['fullname']; 

$query = mysqli_query($con,"INSERT INTO customer (username, password, fullname) 
     VALUES ($username, $password, $fullname)"); 

if (!mysqli_query($query,$con)){ 
    die ("An error in the SQL Query: " . mysqli_error()); 
} 

?> 
+1

'mysqli_query' возвращает ложь, просто потому, что это недопустимый SQL. Вы используете mysqli, поэтому начинайте с использования подготовленных операторов, и у вас не будет этой конкретной проблемы, и вы не будете широко открыты для атак SQL-инъекций. –

+1

Кроме того, я не совсем уверен, что вы делаете с этим вторым вызовом mysqli_query ... –

+0

Я думаю, что вам не хватает кавычек для строки: 'mysqli_query ($ con," INSERT INTO customer (имя пользователя, пароль, полное имя) VALUES ('$ username', '$ password', '$ fullname') ");' – Thamilan

ответ

0

Ваши переменные неправильно вводили, инкапсулировать их с ", как это

$query = mysqli_query($con,"INSERT INTO customer (username, password, fullname) 
    VALUES ('$username', '$password', '$fullname')"); 

Внимание! Побег переменные первого, как этот

$username = mysqli_real_escape_string($con , $username); 
$password = mysqli_real_escape_string($con , $password); 
$fullname = mysqli_real_escape_string($con , $fullname); 
+1

'' 'не является побегом. –

+1

Кроме того, 'password' является зарезервированным словом в MySQL, вам нужно будет использовать запрос с обратными ссылками вокруг имен столбцов и таблиц (я бы добавил ответ, чтобы показать это, если бы мог, просто чтобы показать обратные ссылки - для info, backticks - это забавные кавычки под ключ esc, хотя вы уже это знаете, P) –