【问题标题】:why Json return Null为什么 Json 返回 Null
【发布时间】:2020-07-10 08:11:24
【问题描述】:

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

输出

{
  "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';
        }


?>

每次加载 php 文件时,existe.json 文件都包含 null

感谢任何帮助!

【问题讨论】:

  • 这是实际复制的代码吗?如果是,您在这里有一个错字:return json_encode($exsite);。变量名是$existe。您应该会看到一个错误。
  • 您的get_data() 函数并不总是返回值,如果$pdo-&gt;query() 失败则没有返回值。
  • @El_Vanja 你是对的,解决了问题,非常感谢
  • 如果您已经在使用 PDO,请切换到参数化查询以避免SQL injection
  • @El_Vanja 谢谢,我会考虑的

标签: php json database


【解决方案1】:

替换

"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 注入

【讨论】:

  • 谢谢你的回答,已经被EL_Vanja修复了,检查cmets
猜你喜欢
  • 1970-01-01
  • 2016-12-28
  • 2022-12-26
  • 1970-01-01
  • 2015-11-25
  • 2015-07-04
  • 2019-09-29
  • 2015-02-25
  • 2015-10-21
相关资源
最近更新 更多