kueri mysql (masukkan) fungsi di dalam tidak dapat dijalankan

saya memiliki fungsi seperti ini:

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); }

Saya juga memiliki kueri mysql lain di dalam fungsi lain dan berhasil. Dan fopen, fwrite, dan fclose juga dijalankan dengan baik. saya bertanya-tanya, mengapa dalam fungsi ini kueri tidak berfungsi. apakah saya salah menulis pertanyaan?


person 01001101    schedule 04.01.2012    source sumber
comment
Apa kesalahan yang Anda terima? Dan ya, seperti yang ditunjukkan Lukas, Anda membuat diri Anda rentan terhadap injeksi SQL :)   -  person Aaron J Spetner    schedule 04.01.2012
comment
tidak ada kesalahan yang dilaporkan. saya menambahkan mysql_query lain (pilih) di dalam fungsi itu dan berfungsi dengan baik. tapi insertnya tidak berfungsi. bagian mana yang membuat saya rentan terhadap suntikan SQL? $uri?   -  person 01001101    schedule 04.01.2012


Jawaban (1)


Itu karena dua bidang tabel LOG adalah Kata Cadangan di mySQL (DATE dan ON). Sebagai gantinya gunakan centang kembali ( `) sebelum dan sesudah kolom.

Seperti yang ini:

INSERT INTO `tableName`(`fieldA`,`fieldB`,`fieldB`) VALUES ('','','');
person John Woo    schedule 04.01.2012
comment
selamat datang. Anda harus menerima jawaban ini agar orang lain tahu bahwa pertanyaan Anda telah terjawab. - person John Woo; 04.01.2012