Jacobm001
Jacobm001

Reputation: 4539

PHP binding error

I'm trying to use this script to see if there's a registered using in my database, but I'm having trouble on line 6. I keep getting the error:

Fatal error: Call to a member function bind_param() on a non-object in -redacted-/check_login.php on line 6

I'm stumped as to why it's failing, because I have a similar statement working on the create user function.

<?php
ini_set('display_errors', 'On');
$db = new mysqli("localhost", "root", "-redacted-", "-redacted-");

$query = $db->prepare("SELECT user FROM users WHERE username = ? AND password = ?");
$query->bind_param('ss', $_POST['username'], md5($_POST['password']));
$query->execute();
$query->bind_result($result);
$query->fetch();

if($result->num_rows == 1) {
    session_start();
    $_SESSION['user'] = $_POST['username'];
    header("Location: 10.0.0.15/index.php");
}
?>

Upvotes: 0

Views: 104

Answers (1)

Daryl Gill
Daryl Gill

Reputation: 5524

This is usually caused by referencing a non-existant column/table in your database schema. Hence why the prepared is the root cause of this error.

What you should do, is check over your query. Making sure you are:

  1. not using reserved mysql keywords
  2. referencing columns/tables that exist within the schema
  3. There are no syntax errors within your SQL Query

Upvotes: 1

Related Questions