0

// db.php

$db = array();

$db['host'] = '127.0.0.1';
$db['login'] = 'root';
$db['pass'] = '';
$db['name'] = 'edziennik';

$db_conn = new PDO('mysql:host='.$db['host'].';dbname='.$db['name'].';charset=utf8mb4', $db['login'], $db['pass']);

login_system.php

<?php

require_once('cfg/db.php');

function validate_data($l, $p)
{
    $query = "SELECT * FROM e_users WHERE login='"+$l+"' AND password='"+$p+"'";
    $stmt = $db_conn->query($query);
    $row_count = $stmt->rowCount();
    if($row_count===1)
        return true;
    else
        return false;
    return false;
}

Error: Call to a member function query() on null Adding global prefix don't helped. I lost lot of time to fix it, so i ask you.

AmaziR
  • 11
  • 1

1 Answers1

0

$db_conn doesn't exist in the validate_data scope. Pass it in as an argument.

<?php

require_once('cfg/db.php');

function validate_data($db_conn, $l, $p)
{
    $query = "SELECT * FROM e_users WHERE login='".$l."' AND password='".$p."'";
    $stmt = $db_conn->query($query);
    $row_count = $stmt->rowCount();
    if($row_count===1)
        return true;
    else
        return false;
    return false;
}

And when you call it, pass in the connection.

$check = validate_data($db_conn, $whateverLIs, $whateverPIs);

Edit: -Fixed concat operator as noted by @Bamar.

Jonnix
  • 4,121
  • 1
  • 30
  • 31