2012-01-08 59 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']); 

这个工作,你需要把每价值在查询到的报价。