Ввод адресов электронной почты в базу данных MYSQL - PullRequest
0 голосов
/ 12 марта 2012

Я пытаюсь вставить электронные письма в таблицу MYSQL и получаю сообщение об ошибке:

У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с '19,' blah@gmail.com ')' в строке 1

Я просматривал Интернет и пробовал разные комбинации сопоставлений и кодов, но ничего не получится. «@» Здесь проблема? Я получаю этот адрес электронной почты от декодирования объекта пользователя JSON Facebook. Вот отрывки из моего кода:

$user = json_decode(file_get_contents($jsonurl));
$userid = $user->id;
if($user->gender == "male") $usergender = TRUE;
else $usergender = FALSE;
$useremail = $user->email;

mysql_select_db("kirkstat", $con);
$result = mysql_query("INSERT INTO table (id, access, gender, age, email) VALUES ($userid, '$access_token', $usergender, 19, '$useremail')");
if (!$result){
    echo("error.\n");
    die('Invalid query: ' . mysql_error());
}

id - это bigint, доступ - это varchar, пол - это двоичный код, age - это int, а электронная почта - это varchar.

Спасибо за вашу помощь!

Ответы [ 2 ]

4 голосов
/ 12 марта 2012

false преобразует как строку в пустую строку. Пустая строка недопустима в SQL для целочисленного столбца (или любого значения столбца, так как оно также не будет иметь '').

Вместо false / true используйте 0 / 1.

0 голосов
/ 12 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...