Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何执行两个mysqli_查询_Php_Mysql - Fatal编程技术网

Php 如何执行两个mysqli_查询

Php 如何执行两个mysqli_查询,php,mysql,Php,Mysql,我正在编写一个回调文件,根据API的响应更新数据库 我得到一个$status响应,它应该是SUCCESS或FAIL。 我想使用if语句首先更新db表,然后如果$status更新为“SUCCESS”,我将从该列中选择*并在其他地方使用数据 $con = mysqli_connect($servername, $username, $password, $dbname); if (!$con) { die("Connection failed: " . mysqli_conn

我正在编写一个回调文件,根据API的响应更新数据库

我得到一个$status响应,它应该是SUCCESS或FAIL。 我想使用if语句首先更新db表,然后如果$status更新为“SUCCESS”,我将从该列中选择*并在其他地方使用数据

  $con = mysqli_connect($servername, $username, $password, $dbname);
  if (!$con)
   {
     die("Connection failed: " . mysqli_connect_error());
   }

  $status = "SUCCESS";
  $doc_id = 1568280255485;


   $sql = "UPDATE docs SET status='$status' WHERE doc_id='$doc_id'";

   $res=mysqli_query($con, $sql);

    if (!$res)
      {
        echo "Did not Update";
      }
      else 
       {
         $endresults = mysqli_query("SELECT * FROM docs WHERE status='$status'");

        echo "Success";

      }

即使在将$status更新为FAILED之后,我也会获得成功。我的第二个mysqli\u查询未被执行。如何实现这一点?

您没有为第二个mysqli\u查询()提供相同的参数

mysqli\u查询($con,“从状态为“$status”的文档中选择*)


您忘记添加$con

请尝试按以下方式更改代码,然后查看结果

<?php
$con = new mysqli($servername, $username, $password, $dbname);
if (mysqli_connect_error())
{
    echo mysqli_connect_error();
}

$status = "SUCCESS";
$doc_id = 1568280255485;


$sql = "UPDATE docs SET status='$status' WHERE doc_id='$doc_id'";

$res = $con->query($sql);

if (!$res || $res == null)
{
    echo "Did not Update";
} else {
    $endresults = $con->query("SELECT * FROM docs WHERE status='$status'");
    if( $endresults ){
        echo "Success\r\n";
        // do something with $endresults;
        /*
        while($row = $endresults->fetch_object()) {
            // do something
        }
        */
    } else {
        echo "Query select have a problem";
    }
}

它只是回应“成功”;没有条件!另见:我很想帮助你,但你的问题不清楚。情况如何?成功的条件是什么?可能重复@Dharman我想首先使用我在第一次查询之前的$sql=“update”更新db表(status=$status)。如果$sql没有更新中断。如果它更新了db表(status=$status),那么执行我的第二个查询,该查询应该检查(status=$status)是否设置为“SUCCESS”。如果是,则获取数据并执行某些操作。谢谢,但返回的结果相同。。如果使用“UPDATE docs SET status='FAILED'运行第一个查询,其中doc_id='$doc_id';还是会成功。这不是我想要的。。我的目标是仅在status='SUCCESS'时执行$endresult查询。这是正常的,因为如果statemaent处于var状态,则没有任何控制器。在使用更新之前,添加条件if并检查状态。例如如果($status==“SUCCESS”){//continue script}