1

I'm trying to use a mysqli connection to retrieve rows from my database however I continue to receive a 500 internal server error no matter what I try.

$getUserQuery = "SELECT * FROM members WHERE name = ? AND member_id > 0";
$getUserStatement = $mysqli_conn->prepare($getUserQuery);
$getUserStatement->bind_param("s", $name);

$mysqli_conn->ping() results in a value of true so I know there's no issue with the database connection. var_dump($getUserStatement) results in bool(false) so there's some issue with the prepare. Whole code:

$user_dirty = $_GET['u'];
$pass_dirty = $_GET['p'];

$getUserQuery = "SELECT * FROM members WHERE name = ? AND member_id > 0";
$getUserStatement = $mysqli_conn->prepare($getUserQuery);

if ($getUserStatement) {
    echo($getUserStatement);
} else {
    echo("not good");
}

$getUserStatement->bind_param("s", $user_dirty);
$getUserStatement->execute();
$getUserResult = $getUserStatement->get_result();

And how I create my DB connection:

$mysql_host = "host";
$mysql_user = "user";
$mysql_password = "pass";
$mysql_database = "db";

$mysqli_conn = new mysqli($mysql_host, $mysql_user, $mysql_password, $mysql_database);
AnthonyOSX
  • 342
  • 5
  • 15

1 Answers1

0

You gets 500 internal error because statement is false probably(https://stackoverflow.com/a/845025/2962442 turn on display errors), not resource like it should be, it can be caused by lost connection, try ping or reconnect before prepare.

Example good code:

$getUserQuery = "SELECT * FROM members WHERE name = ? AND member_id > 0";
$getUserStatement = $mysqli_conn->prepare($getUserQuery);
if ($getUserStatement) {
    $getUserStatement->bind_param("s", $name);
} else {
    //statement is false, not good
}

and good example of connection part

$mysql_host = "host";
$mysql_user = "user";
$mysql_password = "pass";
$mysql_database = "db";

$mysqli_conn = new mysqli($mysql_host, $mysql_user, $mysql_password, $mysql_database);    
if (!$mysqli_conn) {
    //not connected...
}
Community
  • 1
  • 1
Kamil Karkus
  • 1,283
  • 1
  • 11
  • 29