1

変数から mysql データベースに日付を挿入しようとしています。列の形式は日付で、列に日付があります。列の日付は 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."', '".$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

そのため、これをデータベースに挿入できない理由がわかりません。

4

4 に答える 4

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によるこのツイートを参照させてください。

于 2012-06-08T13:55:34.333 に答える
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

于 2012-06-08T13:58:23.590 に答える
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());
于 2012-06-08T14:14:01.880 に答える
-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());
于 2012-06-08T14:00:00.540 に答える