запрос mysql (вставка) внутри функции не может быть выполнен

у меня есть такая функция:

function record(){
$table = new table;
$clogin = new login;
$date = date("F j, Y, g:i a"); 
$ip =  $_SERVER['REMOTE_ADDR'];
$uri = $_SERVER['REQUEST_URI'];
mysql_query("insert into log (player, date, ip, on) values ('$clogin->username', '$date', '$ip', '$uri')");
$fopen = fopen("data/log.txt", "a+");
fwrite ($fopen, "PLAYER: $clogin->username DATE: $date IP: $ip ON: $uri\n");
fclose ($fopen); }

У меня также есть другой запрос mysql внутри другой функции, и он работает. И fopen, fwrite и fclose также выполняются правильно. интересно, почему в этой функции запрос не работал. я неправильно написал запрос?


person 01001101    schedule 04.01.2012    source источник
comment
Какую ошибку вы получаете? И да, как указывает Лукас, вы делаете себя уязвимыми для SQL-инъекций :)   -  person Aaron J Spetner    schedule 04.01.2012
comment
об ошибке не сообщается. я добавляю еще один mysql_query (выберите) внутри этой функции, и она работает правильно. но вставка не работала. какая часть делает меня восприимчивым к SQL-инъекциям? $ури?   -  person 01001101    schedule 04.01.2012


Ответы (1)


Это потому, что два поля таблицы LOG являются Reserved Word в mySQL (DATE и ON). Вместо этого используйте обратную галочку (`) до и после поля.

Как этот:

INSERT INTO `tableName`(`fieldA`,`fieldB`,`fieldB`) VALUES ('','','');
person John Woo    schedule 04.01.2012
comment
Добро пожаловать. вы должны принять этот ответ, чтобы другие знали, что на ваш вопрос был дан ответ. - person John Woo; 04.01.2012