2012-01-04 71 views
1

我有這樣的功能: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也正確執行。我想知道,爲什麼在這個功能查詢不起作用。我錯了寫了查詢?

+0

什麼是錯誤您收到?是的,正如Lukas指出的那樣,您正在使自己容易受到SQL注入:) – 2012-01-04 11:17:17

+0

沒有錯誤報告。 我添加了另一個mysql_query(選擇)在該功能和它的工作正常。 但插入不起作用。 哪部分使我容易受到SQL注入? $ uri? – 01001101 2012-01-04 11:36:36

回答

3

這是因爲表LOG的兩個領域中的MySQL(DATEON)是Reserved Word。請在該字段前後使用返回打勾(`)。

贊一個:

INSERT INTO `tableName`(`fieldA`,`fieldB`,`fieldB`) VALUES ('','',''); 
+0

歡迎。你必須接受這個答案,讓其他人知道你的問題已經得到解答。 – 2012-01-04 11:42:36