简体   繁体   English

从PHP执行MySQL查询的问题

[英]Issue with execution of MySQL query from PHP

I'm trying to execute this query from PHP but it's not working: 我正在尝试从PHP执行此查询,但无法正常工作:

$myQuery = 'SET @t1= 5;

                    INSERT INTO mvt (id_piece, code_mvt, origine_mvt, type_mvt, article_id_article, code_art, des_art, qte_old, qte_mvt, qte_new, link_piece)

                    SELECT

                    p.id_bsr,

                    CONCAT_WS(\'\',\'MVT/15/12/\',LPAD(@t1 := @t1+1, 3, \'0\')) AS code_mvt,

                    p.code_bsr,

             \'Bon Annulation\',

             l.article_id_article,

               l.code_art,

               l.des_art,

               qte_art,

               qte,

               (qte_art + (qte*1)),

               \'index.php?p=DetailsBonSortie&idBsr=167\'

                    FROM

                    bon_sortie p, ligne_sortie l, article a

                           WHERE p.id_bsr = l.bon_sortie_id_sortie

                   AND a.id_article = l.article_id_article

                   AND id_bsr = 167;
                           ';

As you can see it's an INSERT query from a SELECT query and a variable @t1 . 如您所见,它是一个SELECT查询和一个变量@t1INSERT查询。
When I execute this query directly in MySQL DB it works fine, but when I try to execute it from php like this: 当我直接在MySQL DB中执行此查询时,它工作正常,但是当我尝试从php这样执行时:

$conn = new mysqli('host', 'user', 'password', 'database');
$conn->query($myQuery);

it doesn't work! 它不起作用!
What am I missing ? 我想念什么?

You can't execute 2 queries in the same statement with the php-mysql extension 您无法在同一条带有php-mysql扩展名的语句中执行2个查询

Try this: 尝试这个:

$myQuery1 = 'SET @t1=5';
$myQuery2 = '
    INSERT INTO mvt (id_piece, code_mvt, origine_mvt, type_mvt, article_id_article, code_art, des_art, qte_old, qte_mvt, qte_new, link_piece)
    SELECT
        p.id_bsr,
        CONCAT_WS(\'\',\'MVT/15/12/\',LPAD(@t1 := @t1+1, 3, \'0\')) AS code_mvt,
        p.code_bsr,
        \'Bon Annulation\',
        l.article_id_article,
        l.code_art,
        l.des_art,
        qte_art,
        qte,
        (qte_art + (qte*1)),
        \'index.php?p=DetailsBonSortie&idBsr=167\'
    FROM
        bon_sortie p, ligne_sortie l, article a
    WHERE p.id_bsr = l.bon_sortie_id_sortie
        AND a.id_article = l.article_id_article
        AND id_bsr = 167;
';

$conn = new mysqli('host', 'user', 'password', 'database');
$conn->query($myQuery1);
$conn->query($myQuery2);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM