2013-02-05 24 views
-2
function insertVisitorInfoSignIn($att_id, $card_no, $purpose, $block, $level, $staff_email, $pa_email, $staff_id,$dept_id){ 
    $time_in = getTime(); 
    $sql = "insert into visitor_history (att_id, card_no, time_in, purpose, block, level, staff_email, pa_email, staff_id,dept_id) 
      values ($att_id, '$card_no', '$time_in', '$purpose', '$block', '$level', '$staff_email', '$pa_email', $staff_id,$dept_id)"; 

    $rs = mysql_query($sql) or die ("Error in function insertVisitorInfoSignIn "); 
} 
+0

數據庫上下文的字符串轉義? – mario

+0

你得到的錯誤是什麼,也嘗試使用mysqli或PDO作爲使用mysql擴展名已棄用 – Satya

+2

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果您選擇PDO, [這裏是一個很好的教程](http://stackoverflow.com/a/14110189/1723893)。 –

回答

1

此插入到database..working罰款,PHP 5.3.1,但錯誤是你使用的是什麼:

$sql = "insert into visitor_history 
      (att_id, card_no, time_in, purpose, block, 
       level, staff_email, pa_email, staff_id, dept_id) 
     values ($att_id, '$card_no', '$time_in', '$purpose', '$block', 
       '$level', '$staff_email', '$pa_email', $staff_id, $dept_id)"; 

,應該是這樣的:

$sql = "insert into visitor_history 
      (att_id, card_no, time_in, purpose, block, 
      level, staff_email, pa_email, staff_id,dept_id) 
     values ('$att_id', '$card_no', '$time_in', '$purpose', '$block', 
       '$level', '$staff_email', '$pa_email', '$staff_id', '$dept_id')"; 

通過變量傳遞值時,您在某些變量中遺漏了''

我們建議您使用mysql_real_escape_string()來防止您的數據庫從SQL注入,也嘗試使用mysqli或PDO,因爲使用mysql擴展已被棄用。

+0

@mario謝謝,但我仍在更新我的答案,以提供更好的解釋。 –

+0

我寧願猜測沒有引號的變量是最重要的數字ID。 (OP的實際問題是magic_quotes在一臺服務器上,但不是其他的)。您應該擴展您的附錄,PDO + mysqli本身是無用的;只有準備好的陳述會解決這個問題 – mario

+0

@mario謝謝解釋先生,我在這裏學習以及謝謝讓我正確.. –

相關問題