2012-01-08 2 views
0

im пытается вставить некоторые данные в мою базу данных mysql. Соединение работает нормально, но у меня возникла проблема с правильной отправкой запроса в базу данных. Ниже вы можете найти код в моем php fille. Я также сообщаю, какие типы полей они находятся в базе данных.Неверный запрос mysql в php fille?

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']); 

для этой работы, вам нужно положить каждый значения в запросе в кавычки.

Смежные вопросы