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

crea database con pdo in php

Ci sono due grossi problemi qui. Il primo è minore. Queste righe di codice non funzioneranno mai:

$db->bindParam(1,`account`);
$db->bindParam(1,'$dbb'); //line 17

Questo perché entrambi stanno tentando di chiamare bindParam come stringa . Questo è impossibile. bindParam ha bisogno di un riferimento a una variabile. Questo è il motivo per cui viene visualizzato un errore "impossibile passare il parametro 2 per riferimento":puoi passare solo variabili per riferimento.

Uno di questi, tuttavia, funzionerebbe:

$db->bindParam(1, $dbb); // call bindParam on a variable
$db->bindValue(1, 'account'); // call bindValue on a string literal

Il problema più fondamentale, tuttavia, è la tua comprensione delle affermazioni preparate. L'idea delle dichiarazioni preparate è non semplice sostituzione di stringhe in un'altra stringa. Si tratta fondamentalmente della separazione della struttura della query dai dati. Il nome di una tabella è considerato parte della struttura della query, non dei dati. Devi inserire il nome della tabella nella query originale. Il tuo primo codice è il modo per farlo.

$db = $conn->prepare( 'CREATE SCHEMA IF NOT EXISTS account');