2012-06-08 94 views
1

我想從一個變量插入一個日期到一個MySQL數據庫。該列的格式是日期,它的列中有日期。在列的日期看起來像YYYY-MM-DDPHP/MYSQL日期不會插入

我的日期變量也像這樣但不會插入日期入列,甚至我沒有得到一個錯誤只是一個白色屏幕。

<?php 
//here is the code to insert this does not work 
mysql_query("INSERT INTO `invoices` (account_id, purchased_date, sales_rep, INV_ID) 
VALUES ('".$acctid."', '".$date"','".$row['8']."', '".$invid."')") or die("load1 -" . mysql_error()); 


<?php 
//this does work but it does not have the date. 
mysql_query("INSERT INTO `invoices` (account_id, sales_rep, INV_ID) 
    VALUES ('".$acctid."', '".$row['8']."', '".$invid."')") or die("load1 -" . mysql_error()); 

不知道是什麼問題。我已經在屏幕上顯示了$ date變量,它看起來很好。 2012-06-01

所以我不知道爲什麼它不能插入到數據庫中。

+0

什麼用'mysql_query'返回的錯誤? – Sirko

+0

沒有錯誤只返回一個空白的白色屏幕。 – Steven

+0

第二個查詢中的'$ date'在哪裏? – sephoy08

回答

4

你的錯誤是你在這一行有一個語法錯誤:

VALUES ('".$acctid."', '".$date"','".$row['8']."', '".$invid."')") 

你的服務器有display_errors關閉的,所以你沒有看到致命錯誤輸出。

您可以通過添加一個連接符(.)像這樣解決這個問題:

VALUES ('".$acctid."', '".$date."','".$row['8']."', '".$invid."')") 

此外,在未來,我覺得它更可讀寫我的查詢,像這樣:

VALUES ('{$acctid}', '{$date}', '{$row['8']}', '{$invid}') 

如果你不想使用插值(這是上面使用的字符串「注入」的方法),你仍然可以使用連接(你的原始方法),但使用空格使它更易讀(並且在嘗試之前更容易找到語法錯​​誤執行它):

"VALUES ('" . $acctid . "', '" . $date . "' , '" . $row['8'] . "', '" . $invid . "')"; 

而且所有的仇敵順我要提示插入在連接前,讓我@rasmus指出插向您推薦this tweet實際上比串聯,這幾天快。

+0

謝謝。UGGGGGGG我不能相信我錯過了那麼簡單的事情。 – Steven

+0

np,有時候更多的眼睛有助於(: –

+1

)你應該在你的php.ini中將'display_errors'設置爲'on',或者使用'ini_set('display_errors','on);'如果你沒有權限訪問它,或者只是暫時需要,另外,如果你還沒有它,可以使用'error_reporting(E_ALL)'(: –

1
<?php 
//here is the code to insert this does not work 
mysql_query("INSERT INTO `invoices` (account_id, purchased_date, sales_rep, INV_ID) VALUES ('".$acctid."', '".$date"','".$row['8']."', '".$invid."')") or die("load1 -" .  mysql_error()); 
?> 

的錯誤是:

PHP Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING on line 1 

$date後無.

-1

您可以使用

mysql_query("INSERT INTO `vipanda2`.`invoices` (account_id, purchased_date, sales_rep, INV_ID) 
VALUES ('".$acctid."', '".date('Y-m-d',mktime(0, 0, 0, date("m", $date), date("d", $date), date("Y", $date)))."','".$row['8']."', '".$invid."')") or die("load1 -" . mysql_error()); 
0

嘗試使用new \DateTime('yyyy-mm-dd')

<?php 
//here is the code to insert this does not work 
mysql_query("INSERT INTO `invoices` (account_id, purchased_date, sales_rep, INV_ID) 
VALUES ('".$acctid."', '".new \DateTime('yyyy-mm-dd')."','".$row['8']."', '".$invid."')") or die("load1 -" . mysql_error());