ERROR en DOP: Llamar a una función miembro prepare () en nulo

Tengo un problema con la función de preparación ==> Llamar a una función miembro prepare () en nulo Tengo páginas de arrastre classo.php e index.php

classo.php:

setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING); } function insererDonne($pseudo,$password) { global $db; classo::connection(); $donne=array( 'user' =>$pseudo, 'pass' =>$password ); $req="INSERT INTO users (user,pass) VALUES (:user,:pass)"; $sql=$db->prepare($req); $sql->execute($donne); } } ?> 

index.php:

 insererDonne('dsds','tosdsta'); ?> 

¿Tienes una idea de cómo puedo resolver esto? Esta es la primera vez que recibo este error de PHP y soy una especie de nueva encoding en PHP con objetos y clases. ¿Podría alguien ayudarme a solucionar este problema por favor?

Hay 2 grandes problemas en su código:

  1. Visibilidad variable
  2. Llamada estática

En detalle:

  1. En oop debes olvidarte de las variables globales. Están en contra del principio de la encapsulación. Además, ni siquiera tiene ninguna variable global en su código, por lo que global $db; la línea no tiene sentido Declare una variable privada $ db en el nivel de clase ( propiedad ) inicialícela en el método de conexión () y acceda a ella en el método de inserción.

  2. Está llamando al método de conexión como classo::connection(); . Sin embargo, deberías declarar el método de conexión como estático . Declare su método de conexión como estático (pero luego cambie $ db a estático también), o llámelo como un método regular usando $ this.