This code get an error:
Fatal error: Call to a member function prepare() on a non-object in C:\Users\fel\VertrigoServ\www\login\validation.php on line 42
CODE:
function repetirDados($email) {
if(!empty($_POST['email'])) {
$query = "SELECT email FROM users WHERE email = ?";
$stmt = $pdo->prepare($query); // error line: line 42
$email = mysql_real_escape_string($_POST['email']);
$stmt->bindValue(1, $email);
$ok = $stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
if ($results == 0) {
return true;
} else {
echo '<h1>something</h1>';
return false;
}
}
}
What is the possible cause? Another question, What is the equivalent to mysql_num_rows
? sorry, I am newbie with pdo
$pdo
is undefined. You're not declaring it inside the function, and it isn't being passed in as an argument.
You need to either pass it in (good), or define it in the global namespace and make it available to your function by placing global $pdo
at the top (bad).
You can make a function of database connection in the same php page & call that function whenever you want. As,
public function connection()
{
$dbc = new PDO("mysql:host=localhost;dbname=chat","root","");
}
public function1()
{
this->connection();
// now you have the connection.. now, time for to do some query..
}
public function2()
{
this->connection();
// now do query stuffs..
}
Or simply you can simply write the database connection line in that page every time when you need it. As,
public function a()
{ // connecting DB for this function a only...
$dbc = new PDO("mysql:host=localhost;dbname=chat","root","");
// bla bla bla...
}
public function b()
{ // connecting DB for this function b only...
$dbc = new PDO("mysql:host=localhost;dbname=chat","root","");
// abra ke dabra... boom
}
The $pdo
object isn't in scope within your function.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With