gpt4 book ai didi

PHP 用文本文件响应 null

转载 作者:行者123 更新时间:2023-11-29 07:36:57 26 4
gpt4 key购买 nike

这是我在 altervista 上的数据库:

db table picture

我想获取“个人资料”字段的值;该字段包含一些文本文件。这是与我的数据库交互的 php 脚本:

<?php
require 'db.php';
$mysqli = new mysqli("localhost", $username, $password, $database);

if (mysqli_connect_errno()) {
echo "Errore in connessione al DBMS: ".mysqli_connect_error();
exit();
}
$username=$_POST['username'];
$password=$_POST['password'];
//$myusername='marco';
//$mypassword='marco';
$myusername=mysql_real_escape_string($username);
$mypassword=mysql_real_escape_string($password);

//$mypassword=md5($password);
$query = "SELECT userid, username , password , profilo FROM `utente` WHERE username='$myusername' AND password='$mypassword' LIMIT 1";
$result = $mysqli->query($query);
if($result->num_rows >0)
{
while($row = $result->fetch_array(MYSQLI_ASSOC))
$rows[]=$row;
}
header("Content-type: text/json");
echo json_encode($rows);
$result->close();
$mysqli->close();
?>

但是,在某些情况下,我可以获得profilo的值;在其他情况下,即使字段不为空,php 也会响应 null,如下所示:

[{"userid":"1000002","username":"","password":"","profilo":null}]. 

如何修复它?

最佳答案

如果您查看表,user_id 1000002 在用户名和密码中具有空值。您所查询的只是用户名和密码,因此这些不会出现;无法通过您的查询来识别它们。

重要提示:您在 mysqli_mysql_ 函数之间来回切换。由于 mysql_ 已被弃用(因为它不安全),您应该使用 mysqli_ 执行所有操作,因此您实际上应该使用 mysqli_real_escape_string或者更好的是,mysqli prepare statementsPrepared PDO statements

更重要的是,特别是因为您的代码不安全:不要将密码以纯文本形式存储在数据库中。研究哈希和加密。

关于PHP 用文本文件响应 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30426192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com