0

I'm tring to retrive information from a database while a user send Login command from iOS app. To test this function i'm launching my php page manually (ex. http://www.testdatabase.com/LoginFunctions.php) and forcing username programmatically.

The problem is that mysqli_query return NULL value. if i use "or die(mysql_error()" nothing happens. Even if i use mysqli_num_rows return 1, but $result is still empty. So when mysql_fetch_assoc is been executed the programm crashes without showing any error. Any idea? Thanks

<?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);
?>
vez25
  • 49
  • 6
  • You can't use `mysql_error()` - use `mysqli_error($con)` to get the error. – Nigel Ren Jul 13 '19 at 16:13
  • And `mysql_fetch_assoc` should be `mysqli_fetch_assoc`. I personally prefer `PDO` to `mysqli`. – Reed Jul 13 '19 at 16:21
  • Possible duplicate of [Can I mix MySQL APIs in PHP?](https://stackoverflow.com/questions/17498216/can-i-mix-mysql-apis-in-php) – Dharman Jul 14 '19 at 10:23

1 Answers1

2

You are using the deprecated mysql_fetch function.Use the new one

<?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);
?>
Gaurav
  • 442
  • 3
  • 7
  • yes the problem was "mysql_fetch_assoc". And thanks for the quick response ! – vez25 Jul 13 '19 at 16:47
  • 1
    See my post on how you should change mysql_ to mysqli: [How to change mysql to mysqli?](https://stackoverflow.com/a/56997881/1839439) – Dharman Jul 14 '19 at 10:24