2012-01-08 55 views
0

即時嘗試插入一些數據到我的MySQL數據庫。連接工作正常,但即時將查詢正確發送到數據庫有問題。下面你可以在我的php文件中找到代碼。我也發佈他們在數據庫中的字段類型。在php fille中錯誤的mysql查詢?

Fields in the mysql database: 
Reservaties_id = int 
Materialen_id = int 
aantal = int 
effectief_gebruikt = tinyint 
opmerking = Varchar2 
datum_van = date 
datum_tot = date 


$resID = $_REQUEST['resID']; 
    $materialen_id = $_REQUEST['materialen_id']; 
    $aantal = $_REQUEST['aantal']; 
    $effectief_gebruikt = $_REQUEST['effectief_gebruikt']; 
    $opmerking = $_REQUEST['opmerking']; 
    $datum_van = date('YYYY-MM-DD',$_REQUEST['datum_van']); 
    $datum_tot = date('YYYY-MM-DD',$_REQUEST['datum_tot']); 



      $string = "INSERT INTO `materialen_per_reservatie`(`reservaties_id`, `materialen_id`, `aantal`, `effectief_gebruikt`, `opmerking`, `datum_van`, `datum_tot`) VALUES ($resID, $materialen_id, $aantal, $effectief_gebruikt, '$opmerking', $datum_van, $datum_tot)"; 
      mysql_query($string); 

回答

1

,你必須包括對日期字段'$dataum_van'

$string = "INSERT INTO `materialen_per_reservatie`(reservaties_id, materialen_id, aantal, effectief_gebruikt, opmerking, datum_van, datum_tot) VALUES ($resID, $materialen_id, $aantal, $effectief_gebruikt, '$opmerking', '$datum_van', '$datum_tot')"; 

單引號,這僅僅是一個示例查詢,同時實現別忘了淨化你的輸入

0

試試這個

$string = "INSERT INTO `materialen_per_reservatie`(`reservaties_id`) VALUES ('".$resID."')"; 
1

你的代碼有一些嚴重的問題,你應該可以解決。首先,它沒有進行任何錯誤檢查,因此查詢在失敗時會默默斷開並不奇怪。檢查錯誤,它會告訴你什麼出了問題 - 如何做到這一點在manual on mysql_query()或這reference question.概述。例如:

$result = mysql_query($string); 

// Bail out on error 
if (!$result) 
    { 
    trigger_error("Database error: ".mysql_error(), E_USER_ERROR); 
    die(); 
    } 

在這種特定的情況下,我相當肯定,那是因爲你沒有把你的價值觀進入引號VALUES關鍵字之後。

此外,您顯示的代碼易受到SQL injection的影響。你需要逃避每次使用像這樣的值:

$resID = mysql_real_escape_string($_REQUEST['resID']); 

這個工作,你需要把每價值在查詢到的報價。