-4

次のような2つの異なるテーブルで2つの異なる挿入ステートメントを使用したいと思います

<?
mysql_query("INSERT INTO Customer (ID,Name,Subject, OrderDate) VALUES ('$ID', '$name', '$status', '$ODate')");
mysql_query("INSERT INTO Order (ID,Subject, Department, Status, OrderDate, Receive, Notes) VALUES ('$ID', '$status', 'Financial', 'Financial Department', '$ODate', 'NO', 'Notes')");
?>

最初のテーブルでのみ機能し、2 番目のテーブルでは機能しません。

誰かがこの問題を解決するのを助けることができますか?

ありがとう

4

2 に答える 2

2

エラーをチェックする必要があります:

<?php
$query1 = "INSERT INTO Customer (ID,Name,Subject, OrderDate) VALUES ('$ID', '$name', '$status', '$ODate')";
if(!mysql_query($query1)) {
  throw new Exception(mysql_error());
}

$query2 = "INSERT INTO Order (ID,Subject, Department, Status, OrderDate, Receive, Notes) VALUES ('$ID', '$status', 'Financial', 'Financial Department', '$ODate', 'NO', 'Notes')";
if(!mysql_query($query2)) {
  throw new Exception(mysql_error());
}

はMySQLOrder予約語であり、それに応じてエスケープする必要があるため、エラーが発生していると思います。

$query2 = "INSERT INTO `Order` (ID,Subject, Department, Status, OrderDate, Receive, Notes) VALUES ('$ID', '$status', 'Financial', 'Financial Department', '$ODate', 'NO', 'Notes')";

また、主キーとして固定値を挿入しているように見えますが、それでよろしいですか?


コメントで述べたように、mysql_関数の使用を完全に停止し、代わりにMySQLiまたはPDOを使用する必要があります。

于 2012-05-20T06:21:42.707 に答える
0

まず第一に、問題の解決を助け、PDO と MySQLi を使用するようにアドバイスしてくれた DCoder に感謝します。

問題はテーブル名Orderにありました。新しい名前に置き換えると、正常に動作します。

2つ使うことに問題があると思いましたmysql_queryが、そうではありません。私が使用したテーブル名は、MySQL の予約語です。

ありがとう

于 2012-05-21T21:47:40.617 に答える