2012-11-13 63 views
0

我被赋予了MySQL查询:这是在PHP中使用MySQL @variables的正确方法吗?

SET @COD_PAIS = 3, @ID_CARTERA = 8; 
SELECT 
    C.DES_PERMADURACION AS Item 
    , B.POR_MADURACION AS Percentage_Distribution 
FROM dficha_mes A 
JOIN det_maduraciones B 
    ON (A.ID_FICHA_MES = B.ID_FICHA_MES) 
JOIN mpermaduraciones C 
    ON (B.ID_PERMADURACION = C.ID_PERMADURACION) 
WHERE A.ID_CARTERA = @ID_CARTERA 
AND A.COD_PAIS = @COD_PAIS 
AND B.F_CORTE = ( 
        SELECT 
         F_ULT_CIERRE_MENSUAL 
        FROM mpaises 
        WHERE COD_PAIS = @COD_PAIS); 

表在西班牙的行和列。

当我运行使用此查询PHP的mysql_query(),我得到以下错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT 
     C.DES_PERMADURACION AS Item 
     , B.POR_MADURACION AS Percentage_Distrib' at line 2 

但是这个查询从MySQL工作台,甚至SQLyog的完美运行。

任何指针?

回答

2

您不能在PHP中以单个字符串提交多个查询。您需要将它们分别作为mysql_query()的独立调用,或者使用mysqli接口(这是您应该做的任何操作)。

所有的

http://php.net/manual/en/book.mysqli.php

1

我相信mysql_query()一次只能执行1个查询。

1

首先,请忘掉mysql_ *命令,因为他们已被弃用。

其次,如上所述,您一次不能使用多个查询。

第三,看看这里: MySql variables and php

这里: http://www.webhostingtalk.com/showthread.php?t=360276

+0

非常感谢再次提醒我这件事。我将把代码库移动到PDO;只是遗留代码有上述问题。我很快就会迁徙。谢谢。 –

相关问题