0

我有这两个要组合的查询。我已经做了一些没有成功的证明,显然我错误地以正确的模式排序单词

$qryString="INSERT INTO votation (userID, voto, messageID) VALUES (:user, :voto, :mID) 
ON DUPLICATE KEY UPDATE voto = :voto"; 

$qryString="SELECT AVG(voto) AS average_valutation FROM votation WHERE messageID=:mID";

必须将这两个查询合二为一吗?

4

2 回答 2

0

这没有帮助吗?

$qryString="INSERT INTO votation (userID, voto, messageID) VALUES (:user, :voto, :mID) 
            ON DUPLICATE KEY UPDATE voto = :voto ;"; 
                                                 ^----note this to separate from second query.

$qryString .="SELECT AVG(voto) AS average_valutation FROM votation WHERE messageID=:mID";
           ^---note this point.
于 2013-07-24T10:28:45.667 回答
0

根据您使用的 PHP mysql 库,试试这个:

$results = array();
$qryString="
   INSERT INTO votation (userID, voto, messageID) VALUES (:user, :voto, :mID) 
   ON DUPLICATE KEY UPDATE voto = :voto;
   SELECT AVG(voto) AS average_valutation FROM votation WHERE messageID=:mID;
"; 
$mysqli->multi_query($qryString)
do {
    if ($res = $mysqli->store_result()) {
        $results[] = $res->fetch_all(MYSQLI_ASSOC);
        $res->free();
    }
} while ($mysqli->more_results() && $mysqli->next_result());

http://php.net/manual/de/mysqli.multi-query.php

多查询未在(已弃用)mysql_函数中实现。我不确定PDO。

于 2013-07-24T10:34:53.940 回答