【发布时间】:2015-03-10 14:54:45
【问题描述】:
对于合作伙伴数据,我需要合作伙伴 ID 来对应合同结果中的 pid。我从合同数据中得到了查询结果,得到了合同数据,然后我需要将 partner.id 作为contract.pid。保存时,我收到此错误:
查询失败:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在第 3 行的 '' 附近使用的正确语法
require "$_SERVER[DOCUMENT_ROOT]/billing/server/Smarty/libs/Smarty.class.php";
require_once "$_SERVER[DOCUMENT_ROOT]/common/server/engine.php";
// required args
$cbid = $_GET['cbid'];
//$smarty->force_compile = true;
$smarty->debugging = true;
$smarty->caching = true;
$smarty->cache_lifetime = 120;
// ------- contract data ------
$sql = "
SELECT *
FROM billing.contract_body
JOIN billing.contract_stub ON stub=contract_stub.id
WHERE contract_body.id=$cbid
";
$result = mysql_query($sql) or die ("Query failed : " . mysql_error());
while ($contract = mysql_fetch_assoc($result))
{
$value[] = $contract;
}
$smarty->assign('contract', $value);
// ------- partner data ------
$sql = "
SELECT *
FROM common.partner
WHERE partner.id=$contract[pid]
";
$result = mysql_query($sql) or die ("Query failed : " . mysql_error());
while ($partner = mysql_fetch_assoc($result))
{
$value[] = $partner;
}
【问题讨论】:
-
检查您的加入声明
-
什么是
billing.contract_body? -
@WorkSmarter:在平面 php 中都很好。
-
@AlejandroIván 计费架构中的一个表。
-
我几乎可以肯定
JOIN是你的问题...SELECT * FROM billing.contract_body cbody JOIN billing.contract_stub cstub ON cbody.stub=cstub.id WHERE cbody.id=$cbid呢?此外,查看表格的结构会有所帮助