sql >> Base de Datos >  >> RDS >> Mysql

ERROR en PDO:llamada a una función miembro prepare () en nulo

Hay 2 grandes problemas en su código:

  1. Visibilidad de variables
  2. Llamada estática

En detalle:

  1. En oop debes olvidarte de las variables globales. Están en contra del principio de 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 $db privada a nivel de clase (propiedad ) inicialícelo en el método de conexión() y acceda a él en el método de inserción.

  2. Está llamando al método de conexión como classo::connection(); . Sin embargo, deberá declarar el método de conexión como static . 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 normal usando $this.