繁体   English   中英

php代码中的mysql语法错误[关闭]

[英]mysql syntax error in php code [closed]

自从我完成任何数据库工作以来已经有一段时间了,试图重新使用它。

错误:

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

编码:

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

如果您需要数据库结构,我也会将其发布。 请发表评论。

我认为应该

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

只是一个简单的语法错误,它发生在我们所有人身上。

编辑 :我确定您的customerID列是INT,而不是CHAR, 吗? 我已删除了这些引号。 他们会打破你的指标,这一点我敢肯定 ,你已经创建了,对不对?

尝试以下方法:

<?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());
?>

我认为这可以帮助您解决问题。

虽然我看到它已解决,但很有趣的是,为什么在客户订单表中您有不同的客户ID? 为什么要使用FKCust表进行链接而不是使用订单中的简单外键进行链接? 在我看来,这就是您首先需要进行各种奇怪处理的原因; 否则,它只是笔直的插入。

现在,您也不能简单地选择数据(例如,客户的订单),因为匹配行将很麻烦。

还是我错过了什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM