作者kerash (恐八挖)
看板PHP
标题Re: [请益] 跨资料表取栏位值
时间Thu Oct 27 21:29:11 2011
我来猜解问题
※ 引述《delighted817 (璇)》之铭言:
: 哈罗大家好!我想要从Inventory这个资料表中取得ICount的值
: 并和从表单中得到的值相减最後存回ICount中
: 以下是我的程式码...
: $sql2 ="INSERT INTO `newERP`.`orderlist` (CNo, BDate, HDate, INo, IName,
: IStandard,";
: $sql2.=" IQuantity) VALUES ('";
: $sql2.=$_POST["CNo"]."','".$_POST["BDate"]."','".$_POST["HDate"]."',
: '".$_POST["INo"]."','".$_POST["IName"]."','";
: $sql2.=$_POST["IStandard"]."','".$_POST["IQuantity"]."')";
: $sql4="SELECT ICount FROM Inventory ";
: $sql3="UPDATE Inventory SET ICount=ICount-".$_POST["IQuantity"]."'
: WHERE INo= ".$_POST["INo"]." ";
: 执行出来的结果是
我们先假设以下的状况有二
1. 逐一执行
2. 同时执行
3. 其他
: SQL:
: INSERT INTO `newERP`.`orderlist` (CNo, BDate, HDate, INo, IName, IStandard,
: IQuantity) VALUES (' 78','2011-10-27T08:58Z','2011-10-27T08:57Z',' 101',
: ' 计算机概论',' 参考书',' 1'),SELECT ICount FROM Inventory ,
: UPDATE Inventory SET ICount=ICount- 1' WHERE INo= 101
: 不知道为什麽ICount一直都抓不到值@@"
: 请问有人知道怎麽解决吗?
1. 逐一执行的情况下
第二行语法没问题(假设是这样),所以我们看到你的第三行
UPDATE Inventory SET ICount = ICount -1
' WHERE INo= 101
光是这个单引号就有问题了,Icount -1 没错,但多这个引号可能就会造成错误
You have an error in your SQL syntax
2. 同时执行
这种叫可能你是跑 mysql_query($sql2 . $sql3 . $sql4 .. )
在 phpMyAdmin 中跑 SQL 的话,可以一次跑多行没错,但是在 mysql_query 中..
mysql_query() sends a unique query (multiple queries are not supported) to ...
ref:
http://tw2.php.net/mysql_query
在网站 php 跑 mysql_query 有不可执行多行的限制,所以你跑的东西会失败
3. 其他
其它又分为二,第一个状况绝对只能说... 恩...
你根本没执行 mysql_query() ...
不过这种机会近乎於零,所以我们排除
那第二种状况是甚麽呢?
可能是你以为 执行 SQL 给定变数要跟 PHP 一样先取得才能更新
所以你才先跑
SELECT ICount FROM Inventory
然後又跑
UPDATE Inventory SET ICount=ICount- 1' WHERE INo= 101
可能是认为要先 SELECT 出 ICount 後才可以在後面 UPDATE..
那这个就是SQL概念的问题了,简单的说就是多此一举..
资料库是会自己认变数的,除非你是PHP变数..
我能猜想到的情况就这样了,如果还不是的话... 请其他大大帮忙吧Orz
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.37.65.193
※ 编辑: kerash 来自: 114.37.65.193 (10/27 21:29)
1F:→ MOONRAKER:你人真好(发) 10/28 02:05
2F:→ kerash:Orz..你发我卡 10/28 08:47
3F:→ MOONRAKER:不用收,可以(撕) :D 10/28 10:11
4F:推 delighted817:谢谢解答!我先试试看,如果有问题我在PO上来! 10/28 10:32
5F:→ kerash:你可以说说看你的想法是哪个Orz 10/28 11:35