2014-10-18 87 views
0

我正在使用jquery datepicker给我一个默认日期1970-01-01当用户插入日期的空值。我试图改变默认的jquery datepicker配置给我默认值为0000-00-00,但我没有找到方法。所以我试着使用一些选项,将datepicker给出的值替换为我的默认值。但是失败了。这是我的代码。如何在数据库中插入日期时替换错误的日期?

<?php 
    require_once('auth.php'); 
?> 

<html> 
<head> 
<title>EXA_mySQL</title> 
<script type="text/javascript"> 
function CloseWindow() { 
    window.close(); 
    window.opener.location.reload(); 
} 
</script> 
</head> 
<body> 

<?php 
error_reporting(E_ALL); 
ini_set('display_errors','on'); 

$con=mysqli_connect("localhost","user","pass","db"); 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$id_mesin=$_POST['id_mesin']; 
$jenama=$_POST['jenama']; 
$model=$_POST['model']; 
$meter_awal=$_POST['meter_awal']; 
$siri_mesin=$_POST['siri_mesin']; 
$siri_feeder=$_POST['siri_feeder']; 
$siri_finisher=$_POST['siri_finisher']; 
$stok_in=$_POST['stok_in']; 
$in_do=$_POST['in_do']; 
$lokasi=$_POST['lokasi']; 
$js_order=$_POST['js_order']; 
$stok_out=$_POST['stok_out']; 
$out_do=$_POST['out_do']; 
$pelangan=$_POST['pelangan']; 
$pelangan_alamat=$_POST['pelangan_alamat']; 
$pelangan_person=$_POST['pelangan_person']; 
$pelangan_no=$_POST['pelangan_no']; 
$tech=$_POST['tech']; 
$tech_no=$_POST['tech_no']; 
$status=$_POST['status']; 

$sql="INSERT INTO asset(id_mesin, jenama, model, meter_awal, siri_mesin, siri_feeder, siri_finisher, stok_in, in_do, lokasi, js_order, stok_out, out_do, pelangan, pelangan_alamat, pelangan_person, pelangan_no, tech, tech_no, status) VALUES('$id_mesin', '$jenama', '$model', '$meter_awal', '$siri_mesin', '$siri_feeder', '$siri_finisher', STR_TO_DATE('$stok_in', '%m/%d/%Y'), '$in_do', '$lokasi', '$js_order', STR_TO_DATE('$stok_out', '%m/%d/%Y'), '$out_do', '$pelangan', '$pelangan_alamat', '$pelangan_person', '$pelangan_no', '$tech', '$tech_no', '$status')"; 

$date=date_create(); 
if($stok_in == 1970-01-01){ "date_date_set($date,0000,00,00)";} 
if($stok_out == 1970-01-01){ "date_date_set($date,0000,00,00)";} 

$sql2="update asset set(stok_in, stok_out)values('$date_default','$date_default')"; 

$result=mysqli_query($con, $sql, $sql2); 
if($result){ 

echo "Successful"; 
echo "<BR>"; 
echo "<th><form>"; 
echo "<input type='button' onClick='CloseWindow()' value='Back to Exa_mySQL' align='middle'>"; 
echo "</form></th>"; 
} 
else { 
echo "Data error, please check your submit."; 
echo "<BR>"; 
echo "To view back, press 'Backspace' key. To start new blank form, click on the link below."; 
echo "<BR>"; 
echo "<a href='insert.php'>Back to insert form</a>"; 
} 

mysqli_close($con); 
?> 
</body> 
</html> 

这里是我收到的错误。

Warning: mysqli_query() expects parameter 3 to be long, string given in C:\xampp\htdocs\xxx\insert_ac.php on line 60 

有没有办法做到这一点?我正在寻求你的帮助。谢谢。

+0

我不知道你可以在一次调用中执行两个sql命令... – matsjoyce 2014-10-18 09:00:23

回答

0

不能执行与mysqli_query两个SQL命令(http://tr1.php.net/mysqli_query)的第三个参数是结果模式,你可以检查mysqli_multi_query(http://tr1.php.net/manual/tr/mysqli.multi-query.php

编辑:

<?php 
require_once('auth.php'); 
?> 

<html> 
<head> 
<title>EXA_mySQL</title> 
<script type="text/javascript"> 
function CloseWindow() { 
    window.close(); 
    window.opener.location.reload(); 
} 
</script> 
</head> 
<body> 

<?php 
error_reporting(E_ALL); 
ini_set('display_errors','on'); 

$con=mysqli_connect("localhost","user","pass","db"); 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$id_mesin=$_POST['id_mesin']; 
$jenama=$_POST['jenama']; 
$model=$_POST['model']; 
$meter_awal=$_POST['meter_awal']; 
$siri_mesin=$_POST['siri_mesin']; 
$siri_feeder=$_POST['siri_feeder']; 
$siri_finisher=$_POST['siri_finisher']; 
$stok_in=($_POST['stok_in'] == '1970-01-01') ? "" : $_POST['stok_in']; 
$in_do=$_POST['in_do']; 
$lokasi=$_POST['lokasi']; 
$js_order=$_POST['js_order']; 
$stok_out=($_POST['stok_out'] == '1970-01-01') ? "" : $_POST['stok_out']; 
$out_do=$_POST['out_do']; 
$pelangan=$_POST['pelangan']; 
$pelangan_alamat=$_POST['pelangan_alamat']; 
$pelangan_person=$_POST['pelangan_person']; 
$pelangan_no=$_POST['pelangan_no']; 
$tech=$_POST['tech']; 
$tech_no=$_POST['tech_no']; 
$status=$_POST['status']; 

$sql="INSERT INTO asset(id_mesin, jenama, model, meter_awal, siri_mesin, siri_feeder, siri_finisher, stok_in, in_do, lokasi, js_order, stok_out, out_do, pelangan, pelangan_alamat, pelangan_person, pelangan_no, tech, tech_no, status) VALUES('$id_mesin', '$jenama', '$model', '$meter_awal', '$siri_mesin', '$siri_feeder', '$siri_finisher','$stok_in', '$in_do', '$lokasi', '$js_order','$stok_out', '$out_do', '$pelangan', '$pelangan_alamat', '$pelangan_person', '$pelangan_no', '$tech', '$tech_no', '$status')"; 


$result=mysqli_query($con, $sql); 
if($result){ 

echo "Successful"; 
echo "<BR>"; 
echo "<th><form>"; 
echo "<input type='button' onClick='CloseWindow()' value='Back to Exa_mySQL' align='middle'>"; 
echo "</form></th>"; 
} 
else { 
echo "Data error, please check your submit."; 
echo "<BR>"; 
echo "To view back, press 'Backspace' key. To start new blank form, click on the link below."; 
echo "<BR>"; 
echo "<a href='insert.php'>Back to insert form</a>"; 
} 

mysqli_close($con); 
?> 
</body> 
</html> 
+0

我已将代码更改为'$ result = mysqli_query($ con,$ sql); $ result2 = mysqli_query($ con,$ sql2);',它显示成功的消息。但我仍然得到1970-01-01在我的分贝。 – 2014-10-18 09:06:43

+0

您正在使用$ date_default变量更新stok_in和stok_out字段,该变量未在我们看到的代码部分中定义。可以发布你设置$ date_default的地方吗?什么是你的表字段stok_in和stok_out的类型? – engvrdr 2014-10-18 09:10:52

+0

我的不好。 '$ date_default'变量应该是'$ date'。但使用'$ date'变量,我得到这个错误:'可捕获的致命错误:类DateTime的对象无法转换为字符串在C:\ xampp \ htdocs \ xxx \ insert_ac.php 58行。 – 2014-10-18 09:16:07