Por favor, me ajudem com esse erro: Fatal error: Call to a member function prepare() on null in C:\xampp\htdocs\conexao.php on line 14
28/12/2015
0
<?php class BD{ public static $conn; public function __construct(){} public function conn(){ if(is_null(self::$conn)){ self::$conn = new PDO('mysql:host=localhost;dbname=cadastro','root',''); self::$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } return (self::$conn) ? self::$conn : false; } } $inserir = BD::$conn->prepare("UPDATE clientes set nome = 'Jonas' WHERE id=1"); $inserir->execute();
Wesley Jonas
Post mais votado
29/12/2015
1 - Atributos estáticos só podem ser acessados por métodos estáticos, o atributo estático $conn está sendo acessado pelo método não estático conn();
public function conn(){}
2 - Você não está atribuindo uma conexão antes de chamar o método prepare();
$inserir = BD::$conn->prepare("UPDATE clientes set nome = 'Jonas' WHERE id=1");
O correto seria assim:
class BD{ public static $conn; public function __construct(){} public static function conn(){ if(is_null(self::$conn)){ self::$conn = new PDO('mysql:host=localhost;dbname=cadastro','root',''); self::$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } return (self::$conn) ? self::$conn : false; } } $conexao = BD::conn(); $inserir = $conexao->prepare("UPDATE clientes set nome = 'Jonas' WHERE id=1"); $inserir->execute();
William
Mais Posts
29/12/2015
Wesley Jonas
29/12/2015
William
Clique aqui para fazer login e interagir na Comunidade :)