首页 > 解决方案 > 为什么 Json 返回 Null

问题描述

我正在使用此代码检查用户是否存在于数据库中,如果是,

输出

{
  "check": "true",
}

但是,它返回 null

这是代码

<?php
include 'database.php';

error_reporting (E_ALL ^ E_NOTICE); 
$UIDresult=$_POST["UIDresult"];
$Write="<?php $" . "UIDresult='" . $UIDresult . "'; " . "echo $" . "UIDresult;" . " ?>";
file_put_contents('UIDContainer.php',$Write);



function get_data($res){
    $pdo = Database::connect();
    $sql= "SELECT * FROM table_nodemcu_rfidrc522_mysql WHERE id = '$res' ";
    $query_res =$pdo->query($sql);
    $count= count($query_res->fetchAll());
    $existe=array();

    if ( !$query_res ) {
        echo $query_res->error;
        exit;
    }
    if($count > 0){
        $existe[] = array('check'=>'true');
        }
    else
        {  
        $existe[] = array('check'=>'false');
        }
    return json_encode($exsite);    
        }

    $file_name='existe.json';
    if(file_put_contents($file_name,get_data($UIDresult)))
     {

            echo 'file created';

        }else{

            echo 'error';
        }


?>

exists.json 文件包含null每次加载的 php 文件

感谢任何帮助!

标签: phpjsondatabase

解决方案


代替

"SELECT * FROM table_nodemcu_rfidrc522_mysql WHERE id = '$UIDresult' ";

这样

$pdo->prepare("SELECT * FROM table_nodemcu_rfidrc522_mysql WHERE id = :UIDresult);
$pdo->bindValue(:UIDresult, $UIDresult, PARAM_STR);
$pdo->excute();
$pdo->fetch();

你为什么不使用准备和绑定它可以保护你免受 sql 注入


推荐阅读