1

自从我完成任何数据库工作以来已经有一段时间了,试图重新开始......

错误:

更新数据库时出错:您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“从 FKCust where id ='1','3333','1364186198','1')' 附近使用正确的语法

编码:

$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 列是 INT,而不是 CHAR,吗?我已经删除了那些引号。他们会破坏你的索引,我相信你已经创建了,对吧?

于 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 回答