我要结合这两个查询。我已经做了一些证明而没有成功,显然我在正确模式下对单词进行排序时出错

$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";


试图将这两个查询合而为一吗?

最佳答案

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

$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。

08-19 19:07