【问题标题】:having problem with mysqli_query, return NULL but the query works in phpmyadminmysqli_query 有问题,返回 NULL 但查询在 phpmyadmin 中有效
【发布时间】:2019-11-23 00:53:31
【问题描述】:

当用户从 iOS 应用程序发送登录命令时,我正在尝试从数据库中检索信息。 为了测试这个功能,我手动启动我的 php 页面(例如http://www.testdatabase.com/LoginFunctions.php)并以编程方式强制用户名。

问题在于 mysqli_query 返回 NULL 值。如果我使用“or die(mysql_error()”没有任何反应。即使我使用 mysqli_num_rows 返回 1,但 $result 仍然为空。 因此,当执行 mysql_fetch_assoc 时,程序崩溃而没有显示任何错误。 任何想法?谢谢

<?php
    // Create connection
    $con=mysqli_connect("localhost","super","super","testdb");

    // Check connection
    if (mysqli_connect_errno())
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $action = "login";
    $username = "Peperoncino";
    $response = array();

    if ($action == "login")
    {
        $query = "SELECT psw AS pswrd,id FROM Activities WHERE nome = 'Peperoncino' LIMIT 1";

        if ($result = mysqli_query($con, $query))
        {
            $values = mysql_fetch_assoc($result);
            $password = $values['pswrd'];
            $response["password"] = $password;
            $response["message"] = "Get information from db";
        }
        else
        {
            echo "err";
        }

        echo json_encode($response);
    }

    // Close connections
    mysqli_close($con);
?>

【问题讨论】:

  • 您不能使用mysql_error() - 使用mysqli_error($con) 来获取错误。
  • mysql_fetch_assoc 应该是mysqli_fetch_assoc。我个人更喜欢PDO 而不是mysqli

标签: php mysql


【解决方案1】:

您正在使用已弃用的 mysql_fetch 函数。请使用新函数

<?php
    // Create connection
    $con=mysqli_connect("localhost","super","super","testdb");

    // Check connection
    if (mysqli_connect_errno())
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $action = "login";
    $username = "Peperoncino";
    $response = array();

    if ($action == "login")
    {
        $query = "SELECT psw AS pswrd,id FROM Activities WHERE nome = 'Peperoncino' LIMIT 1";

        if ($result = mysqli_query($con, $query))
        {
            $values = mysqli_fetch_assoc($result);
            $password = $values['pswrd'];
            $response["password"] = $password;
            $response["message"] = "Get information from db";
        }
        else
        {
            echo  mysqli_error($conn);  
        }

        echo json_encode($response);
    }

    // Close connections
    mysqli_close($con);
?>

【讨论】:

  • 是的,问题是“mysql_fetch_assoc”。感谢您的快速回复!
  • 请参阅我的帖子,了解如何将 mysql_ 更改为 mysqli:How to change mysql to mysqli?
猜你喜欢
  • 1970-01-01
  • 2013-04-03
  • 1970-01-01
  • 2017-02-18
  • 1970-01-01
  • 1970-01-01
  • 2019-02-06
  • 2014-10-31
  • 1970-01-01
相关资源
最近更新 更多