Ошибка:У меня есть эта ошибка, и я не знаю, для чего это. любой орган может мне помочь?
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''marketer detail'('username','password','phone_number')VALUES('far','$1$gk0.pP4.' at line 1
Это мой PHP код:
<?php
/
$action=$_POST['action'];
if ($action=="insert_marketer"){
insert_marketer();
}
function insert_marketer(){
$marketer=mysqli_connect("localhost","root","","marketer detail");
$username = $_POST['username'];
var_dump("$username");
$password = $_POST['password'];
$phone_number = $_POST['phone_number'];
if (!empty($username) && !empty($password)&& !empty($phone_number)){
$password=crypt('$password');
$result = mysqli_query($marketer,"INSERT INTO 'marketer detail'('username','password','phone_number')VALUES('$username','$password','$phone_number')");
if($result)
{
var_dump('$password');
echo "New record created successfully";
}
else {
echo "Error: ". mysqli_error($marketer);
}
}
mysqli_close ($marketer) ;
}
?>
** ПРЕДУПРЕЖДЕНИЕ **: Дать свой собственный слой управления доступом не просто и есть много возможностей, чтобы заставить его серьезно ошибиться. Пожалуйста, не пишите свою собственную систему аутентификации, если какая-либо современная [инфраструктура разработки] (http://codegeekz.com/best-php-frameworks-for-developers/), например [Laravel] (http://laravel.com/) поставляется с надежной системой аутентификации (https://laravel.com/docs/5.2/authentication). Следуйте [передовой практике] (http://www.phptherightway.com/#security) и никогда не храните пароли со слабым хешем, например ['crypt', используя DES] (http://php.net/manual/en/function. crypt.php). – tadman
** ПРЕДУПРЕЖДЕНИЕ **: при использовании 'mysqli' вы должны использовать [параметризованные запросы] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) и [' bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), чтобы добавить данные пользователя в ваш запрос. ** НЕ используйте ** интерполирование строк или конкатенацию для выполнения этого, потому что вы создали серьезную [SQL-инъекцию] (http://bobby-tables.com/). ** НИКОГДА не ставьте данные '$ _POST' или' $ _GET' непосредственно в запрос, это может быть очень вредно, если кто-то пытается использовать вашу ошибку. – tadman
Я предлагаю проверить, действительно ли обман отвечает на ваш вопрос. Если нет, скажите мне, и я постараюсь помочь. Btw, посмотрите [здесь] (http://meta.stackoverflow.com/questions/291362/advice-for-non-native-english-speakers/291370#291370), следуя этим очень простым основным правилам написания, может помочь сообщений, чтобы выжить много. – peterh