如何在PHP中使用json_encodage从数据库中隐藏列

如何在PHP中使用json_encodage从数据库中隐藏列,php,mysql,pdo,Php,Mysql,Pdo,我有一个数据库,我在PHP中的json_encode中获取,但我想隐藏列。我有太多的列要调用我的SQL请求,这就是为什么我刚刚做了一个:SELECT*。例如,我想隐藏login和password列 $bdd = $connect->query(" SELECT * FROM dmlog.dm LEFT JOIN dmlog.users ON users.id_user = dm.id_used "); $rows = array(); while ($r = $bdd->fetch(

我有一个数据库,我在PHP中的
json_encode
中获取
,但我想隐藏
。我有太多的
要调用我的
SQL请求
,这就是为什么我刚刚做了一个:
SELECT*
。例如,我想隐藏
login
password

$bdd = $connect->query("
SELECT * FROM dmlog.dm LEFT JOIN dmlog.users ON users.id_user = dm.id_used
");
$rows = array();
while ($r = $bdd->fetch()) {
    $rows[] = $r;
}
json_encode($rows);

只需取消设置
登录
密码
,然后将其插入到
$rows
数组中即可

while ($r = $bdd->fetch()) {
    unset($r["login"]);
    unset($r["password"]);
    $rows[] = $r;
}

您需要使用
PDO::FETCH_ASSOC
,这样就不会得到每条记录的两组。将此参数传递给fetch后,您将只返回一个关联数组,该列将作为索引。然后,您可以将不需要的内容传递到
unset

$bdd = $connect->query('SELECT * FROM dmlog.dm LEFT JOIN dmlog.users ON users.id_user = dm.id_used');
$rows = array();
while($r = $bdd->fetch(PDO::FETCH_ASSOC)) {
    unset($r["login"], $r["login_pass"], $r["login_email"]); //remove login, Login_email, and password from the return
    $rows[] = $r; 
}
echo json_encode($rows);

它不起作用,如果你想知道原因,我发现: