SQL Server与MySQL、PHP与ColdFusion
这个查询在ColdFusion中运行良好,但在PHP中无法运行。PHP不喜欢我的连接。这两个查询有什么不同SQL Server与MySQL、PHP与ColdFusion,php,sql,coldfusion,Php,Sql,Coldfusion,这个查询在ColdFusion中运行良好,但在PHP中无法运行。PHP不喜欢我的连接。这两个查询有什么不同 <cfquery name="getArt" datasource="mssqlcf_PDartist1"> select * from artwork a join Categories b on (b.CID = a.CID) join SubCategories c on (c.CID = b.CID and c.SCID = a.SCID) where AID = #A
<cfquery name="getArt" datasource="mssqlcf_PDartist1">
select * from artwork a
join Categories b on (b.CID = a.CID)
join SubCategories c on (c.CID = b.CID and c.SCID = a.SCID)
where AID = #AID#
order by DisplayOrder
</cfquery>
<?php
$dbname = 'pdartist2';
$table = 'artwork';
$result = mysql_query("SELECT * from artwork") or die(mysql_error());
a join Categories b on (b.CID = a.CID)
join SubCategories c on (c.CID = b.CID and c.SCID = a.SCID)
where AID = $AID
order by DisplayOrder
mysql_free_result($result);
?>
您过早地结束了PHP字符串。引号必须围绕整个SQL查询:
$result = mysql_query("SELECT *
FROM artwork a
JOIN Categories b ON b.CID = a.CID
JOIN SubCategories c ON c.CID = b.CID AND c.SCID = a.SCID
WHERE AID = $AID
ORDER BY DisplayOrder") or die(mysql_error());
PHP不关心您的连接;你的意思是需要忽略它们吗?不,我的意思是PHP或ColdFusion将字符串发送到数据库服务器。它一点也不关心它们是否包含连接。那么,为什么查询在我的Cold Fusion站点上有效而在PHP站点上无效呢?可能是PHP区分大小写,而Cold Fusion不区分大小写吗。因为这些表都是用小写字母命名的!?因为这里有一个PHP语法错误。这与SQL无关。马克的回答很好地指出了这一点。