UNION SQL命令-JSON未将PHP变量返回到AJAX的问题

UNION SQL命令-JSON未将PHP变量返回到AJAX的问题,php,sql,ajax,json,union,Php,Sql,Ajax,Json,Union,我是一个评级脚本。我需要更新SQL,然后根据标准storyidr找到平均值。使用下面的脚本,我将在触发后从AJAX获得{status:fail}。我需要报告$avrank的值 $storyidr=$_POST['storyidr']; $con = mysqli_connect($dbhost,$dbusername,$dbpasswd,$database_name) or die ("Couldn't connect to server."); if (mysqli_

我是一个评级脚本。我需要更新SQL,然后根据标准storyidr找到平均值。使用下面的脚本,我将在触发后从AJAX获得{status:fail}。我需要报告$avrank的值

    $storyidr=$_POST['storyidr'];
    $con = mysqli_connect($dbhost,$dbusername,$dbpasswd,$database_name) or die ("Couldn't connect to server.");
     if (mysqli_connect_errno($con))
       {
       echo "Failed to connect to MySQL: " . mysqli_connect_error();
       }
    $sql  = "INSERT INTO ratings (storyidr, rank, entry_date) VALUES ('$_POST[storyidr]','$_POST[value]',now());"; 
    $sql .= "SELECT AVG(rank) AS avrank from ratings WHERE storyidr = $storyidr";
    if($mysqli->multi_query($sql))
    {   
    if ($result = $mysqli->store_result())
    { 
    $data = mysqli_fetch_assoc($result);
    $avrank = $data['avrank'];
            if(!$result)
            {
                  $arr = array ('status'=>'fail');
                  echo json_encode($arr);
            }
            else
            {

                    echo json_encode($avrank);
            }
                    exit;
    }
    }
以下是我在AJAX中使用的内容,但我认为问题并不存在:

   $.ajax({
             url: '../rate.php',
             data: { storyidr: storyidr, value: value }, 
             type: 'POST',
             success: function (data) {
                 $('#response').append('<li>' + data + '</li>');
             },
             error: function (jxhr, msg, err) {
                 $('#response').append('<li style="color:red">' + msg + '</li>');
             }
         });
提前谢谢你

您可以尝试使用下面的

$mysqli=新的mysqlilocalhost、用户、密码、数据库

$sql.=立即插入评级故事ID、排名、输入日期值“$\u POST[storyidr]”、“$\u POST[value]”; $sql.=从storyidr=$storyidr的评级中选择AVGrank作为avrank

$mysqli->multi_query$sql


有关更多信息,请转到

sql注入警报!:D检查您的查询是否正常工作联合的子查询必须是SELECT查询。插入和选择之间不能有并集。您必须将它们作为单独的查询来执行。这不起作用。这两个部分是分开工作的,但Union不允许组合。Baramar,我在这里可以使用更合适的命令吗?代码没有处理一些语法错误,但我认为您可能走对了方向。我正在仔细阅读并试图找出错误。箭头表示什么?mysqli基本上用于面向对象编程。这里的箭头用来访问实例方法或变量我发布了新的代码,我所做的任何事情都无法摆脱mysqli_fetch_assoc期望参数1是mysqli_result,boolean给定的错误您是否经历了这一部分{if$res=$mysqli->store_result{var_dump$res->fetch_allMYSQLI_assoc;$res->free;}而$mysqli->more_results&&$mysqli->next_result;