首页 > 解决方案 > MySQLi 准备好的语句查询不会运行

问题描述

我试图制作一个 post 方法的 API,并从我的 post 方法中从数据库中获取一个值。

<?php
if($_SERVER['REQUEST_METHOD']=='POST') {
    $response = array();
    //get data
    $username = $_POST['username'];
    $password = $_POST['password'];
    $key_check = $_POST['key_check'];
    require_once('Connection.php');

    $check_key = "SELECT key_check FROM testing1 WHERE username =? AND password =?";
    $insert_key= "UPDATE testing1 SET key_check =? WHERE username =? AND password = ?";
    // $insert_key = "INSERT INTO MyGuests (username, password, key_check) VALUES (?, ?, ?)"
    
    if ($result_p = mysqli_prepare($connection,$check_key)){

        mysqli_stmt_bind_param($result_p,"ss",$username,$password);

        mysqli_stmt_execute($result_p);

        $row = $result_p ->get_result();


        
        while ($row1 = $row -> fetch_assoc()){
            if(isset($row1["key_check"])){
                if($result_p2 = mysqli_prepare($connection,$insert_key)){
                mysqli_stmt_bind_param($result_p2,"sss",$username,$password,$key_check);
                mysqli_stmt_execute($result_p2);
                mysqli_stmt_close($result_p2);
               }         
            }else{
                //do something
            }
        }  
    }
    else{
    //do something
    }'''

正如您在上面的代码中看到的那样,该代码将从第一个查询中获取 key_check 值,然后根据结果是否为空,程序将运行第二个查询以添加来自 post 方法的数据. 我已经检查过该值是否为空,但由于某种原因第二个查询不想运行,有什么我可以做的或者我的逻辑首先是错误的吗?

标签: phpmysqlmysqli

解决方案


推荐阅读