Mysql
 sql >> Database >  >> RDS >> Mysql

ERRORE in PDO:chiamata a una funzione membro prepare() su null

Ci sono 2 grossi problemi nel tuo codice:

  1. Visibilità variabile
  2. Chiamata statica

In dettaglio:

  1. In oop dovresti dimenticare le variabili globali. Sono contrari al principio di incapsulamento. Inoltre, non hai nemmeno alcuna variabile globale nel tuo codice, quindi global $db; la linea non ha senso. Dichiara una variabile $db privata a livello di classe (proprietà ) inizializzalo nel metodo connection() e accedi ad esso nel metodo insert.

  2. Stai chiamando il metodo di connessione come classo::connection(); . Tuttavia, dovresti dichiarare il metodo di connessione come statico . Dichiara il tuo metodo di connessione come statico (ma poi cambia anche $db in statico) o chiamalo come metodo normale usando $this.