获取查询以在PHP中工作,直接在MySQL中工作

时间:2017-04-19 14:39:57

标签: php mysql

如果我在Navicat或phpmyadmin中运行它或直接在MySQL中运行,我有一个完美运行的查询,但是当我通过PHP运行它时,我无法使它工作。这是PHP的限制还是我需要重构查询。请指教。

这是PHP中的查询($ supplierAAIAID在脚本的前面定义):

$query = <<<eof
SET group_concat_max_len = 100000000;
SET @sql = NULL;
SELECT GROUP_CONCAT(DISTINCT CONCAT(' MAX(IF(`AttributeID` = ''',`AttributeID`,''', `AttributeData`, NULL)) AS `',`AttributeID`,'`')) INTO @sql
FROM `attributes`
WHERE `BrandAAIAID` = '{$supplierAAIAID}' ;
SET @sql = CONCAT('SELECT CONCAT(`PartNumber`,''-'',`BrandAAIAID`) AS `ProductCode`, ', @sql, ' FROM `attributes` WHERE `BrandAAIAID` = ''{$supplierAAIAID}'' GROUP BY `PartNumber` ORDER BY `PartNumber`');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
eof;
$result = mysqli_query($link, $query) or die("Selection Error " . mysqli_error($link));

同样,如果我直接在MySQL或Navicat中运行它,则此查询有效。我在PHP中遇到以下错误,但我不知道要改变什么。

  

选择错误您的SQL语法中有错误;检查手册   对应于您的MySQL服务器版本,以获得正确的语法   在'SET @sql = NULL;

附近使用

0 个答案:

没有答案