[英]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
查询和一个变量@t1
的INSERT
查询。
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.