1

データベースの作業を行ってからしばらく経ちましたが、データベースに戻ろうとしています。

エラー:

データベースの更新エラー:SQL構文にエラーがあります。1行目の「selectidfromFKCust where id = '1'、 '3333'、 '1364186198'、 '1')」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

コード:

$sql = "INSERT INTO orders (customerID, purchaseNo, dateCreated, statusID) VALUES (select id from FKCust where id ='$customerId','$purchaseOrder', '$dateEntered','1')";

データベース構造が必要な場合は、それも投稿します。コメントを残してください。

4

4 に答える 4

3

私はそれがすべきだと思います

$sql = "INSERT INTO orders (customerID, purchaseNo, dateCreated, statusID) 
VALUES ((select id from FKCust where id ='$customerId'),
'$purchaseOrder', '$dateEntered','1')";
于 2013-03-25T04:41:43.170 に答える
1
$sql = "INSERT INTO orders (customerID, purchaseNo, dateCreated, statusID)
        VALUES (select id, '$purchaseOrder', '$dateEntered','1'
                  from FKCust
                 where id = $customerId
               )";

単純な構文エラーですが、それは私たち全員に起こります。

編集:customerID列はCHARではなくINTであると確信していますよ?それらの引用符を削除しました。彼らはあなたのインデックスを壊します、あなたが作成したと私は確信していますよね?

于 2013-03-25T04:41:18.460 に答える
1

次のことを試してみてください:

<?php
$selectCust = mysql_query("select `id` from `FKCust` where `id` ='".$customerId."'") or die(mysql_error());
$resultCust = mysql_fetch_array($selectCust);
$getCustID  = $resultCust['id'];
$sql = "INSERT INTO `orders` (`customerID`,`purchaseNo`,`dateCreated`,`statusID`) VALUES ('".$getCustID."','".$purchaseOrder."', '".$dateEntered."','1')";
$query = mysql_query($sql) or die(mysql_error());
?>

これはあなたの問題を解決するのに役立つかもしれないと思います。

于 2013-03-25T04:48:52.800 に答える
0

解決したことはわかりますが、顧客注文テーブルで顧客のIDが異なるのはなぜですか。注文で単純な外部キーの代わりにFKCustテーブルを使用してリンクを実行するのはなぜですか?そもそも、それがあらゆる種類の奇妙な処理を必要とする理由だと私には思えます。それ以外の場合は、ストレートインサートになります。

また、行を一致させるのは面倒なので、データ(顧客の注文など)を単純に選択することもできなくなりました。

それとも私は何かが足りないのですか?

于 2013-03-25T04:57:19.180 に答える