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

opret database med pdo i php

Der er to store problemer her. Den første er mindre. Disse kodelinjer vil aldrig fungere:

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

Dette skyldes, at de begge forsøger at kalde bindParam som en streng . Det er umuligt. bindParam har brug for en reference til en variabel. Det er grunden til, at du får fejlen "kan ikke videregive parameter 2 ved reference":du kan kun sende variabler ved henvisning.

Hver af disse ville dog fungere:

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

Det mere grundlæggende problem er imidlertid din forståelse af forberedte udsagn. Ideen med forberedte udsagn er ikke simpel udskiftning af strenge til en anden streng. Det handler grundlæggende om adskillelse af forespørgslens struktur fra dataene. Navnet på en tabel betragtes som en del af forespørgslens struktur, ikke en del af dataene. Du skal indsætte tabelnavnet i den oprindelige forespørgsel. Din første kode er måden at gøre det på.

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



  1. Indstil AUTO_INCREMENT-værdien programmatisk

  2. Schrödingers MySQL-tabel:eksisterer, men det gør den ikke

  3. Unicode-normalisering i PostgreSQL 13

  4. Brug af nye roller i MySQL 8