这是在PHP中使用MySQL @variables的正确方法吗?

时间:2012-11-13 05:29:57

标签: mysql mysql-workbench

我收到了MySQL查询:

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 Workbench甚至SQLYog完美运行。

这里有指针吗?

3 个答案:

答案 0 :(得分:2)

您无法在PHP中的单个字符串中提交多个查询。您需要将它们作为单独的mysql_query()调用来执行,或者使用mysqli接口(这也是您应该做的事情)。

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

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

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