2014-10-18 86 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

相關問題