MySQL的所有查询不能在PHP相同的文件

时间:2019-01-22 08:06:23

标签: php mysql

我需要在一个文件中运行三个php MySQL查询,但是一次运行两个,但不是三个都正常。我单独运行它们,它们起作用。我也使用了串联,但是仍然没有用。

我尝试通过使用逗号和来隐瞒。在等号之前还没有帮助

一次执行两个查询,但没有三个正在执行,我也使用逗号和点,但这也没有帮助。 我不知道这里的问题是为什么所有查询都不能在单个php文件中工作

    <?php
    include 'databaseconfig.php';

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
    $Emails =  $_GET['email'];
    $Cards =  $_GET['card'];
    $Table =  $_GET['table'];
    $Token_key=$_GET['Token_key'];
    $Bet_amount=$_GET['Bet_amount'];
    //1st query
    $sql = "INSERT INTO Game_table (Email,Card_no,Table_no,Token_key,Bet_amount)
    VALUES ('$Emails', '$Cards', '$Table', '$Token_key', '$Bet_amount')";
//2nd query
      $sql .= " UPDATE LaborRegistered SET balance = balance - '$Bet_amount' WHERE Phone_no ='$Emails';";



    if ($conn->query($sql) === TRUE) {
        echo "New record created successfully";


        sleep(10);
        include 'push_notification.php';

        function send_notification ($tokens, $message)
        {
            $url = 'https://fcm.googleapis.com/fcm/send';
            $fields = array(
                 'registration_ids' => $tokens,
                 'data' => $message
                );

            $headers = array(
                'Authorization:key = AIzaSyDAep_Hxa8iY5FxvlDKF1e_9Ws9EUhFCEw ',
                'Content-Type: application/json'
                );

           $ch = curl_init();
          curl_setopt($ch, CURLOPT_URL, $url);
          curl_setopt($ch, CURLOPT_POST, true);
          curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
          curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);  
          curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
          curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
          $result = curl_exec($ch);           
          if ($result === FALSE) {
              die('Curl failed: ' . curl_error($ch));
          }
          curl_close($ch);
          return $result;
        }



    //3rd query
        $sql .= " Select Token_key From Game_table";
    //this is not working
        $result = mysqli_query($conn,$sql);
        $tokens = array();

        if(mysqli_num_rows($result) > 0 ){

            while ($row = mysqli_fetch_assoc($result)) {
                $tokens[] = $row["Token_key"];
            }
        }

        mysqli_close($conn);
    //sending notification
        $message = array("message" => " FCM PUSH NOTIFICATION TEST MESSAGE");
        $message_status = send_notification($tokens, $message);
        echo $message_status;


         return 1;
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
        return 0;
    }

    $conn->close();
    ?>

我的php文件应该执行所有查询

1 个答案:

答案 0 :(得分:2)

select val from s where REGEXP_LIKE(val, '^([0-9.]*,)([0-9.]*,)([A-Z]+)'); 一次只能执行一个查询。如果要执行许多查询,则必须使用multi_query()

请注意,您的查询必须用半列分隔。

例如

mysqli_query()

关于返回值,文档指出:

  

如果第一条语句失败,则返回 FALSE 。要从其他语句中检索后续错误,必须首先调用mysqli_next_result()


请考虑将prepared statementsparameters结合使用,将用户的输入数据绑定到查询。他们实际上是SQL Injections的弱点。