NetBull
Erfahrenes Mitglied
Moin,
bin nach einiger Zeit mal wieder mit PHP dran und aus mysqli wurde PDO.
Da arbeite ich mich gerade ein.
Aktuell möchte ich ein Datenbank.-Schema für eine temporär-Datenbank dynamisch mit genundenen Parametern erstellen.
Array mit den Optionen zur Ausgabe von Fehlern und der richtigen Codierung
Connector
anlegen der Datenbank
Fehlermeldung:
Wenn ich statt dem letzten Block nun das hier mache, dann geht es.
Ich möchte aber explizit das die Parameter sauber gebunden werden.
Was mache ich im oberen Beispiel falsch?
LG NetBu||
bin nach einiger Zeit mal wieder mit PHP dran und aus mysqli wurde PDO.
Da arbeite ich mich gerade ein.
Aktuell möchte ich ein Datenbank.-Schema für eine temporär-Datenbank dynamisch mit genundenen Parametern erstellen.
Array mit den Optionen zur Ausgabe von Fehlern und der richtigen Codierung
PHP:
$opt = array(
// any occurring errors wil be thrown as PDOException
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
// an SQL command to execute when connecting
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"
);
Connector
PHP:
$pdo = new PDO(
'mysql:host=' . $host . ';',
$user,
$pass,
$opt
);
anlegen der Datenbank
PHP:
$dbName = 'testdb1';
$stmt = $pdo->prepare('CREATE DATABASE IF NOT EXISTS :dbName ;');
$stmt->bindParam(':dbName', $dbName, PDO::PARAM_STR);
var_dump($stmt->queryString);
Fehlermeldung:
Code:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''testdb1'' at line 1' in /var/www/arbeitsproben/SessionLogger/manualTest.php on line 46
Wenn ich statt dem letzten Block nun das hier mache, dann geht es.
PHP:
$dbName = 'testdb10';
$stmt = $pdo->prepare('CREATE DATABASE IF NOT EXISTS ' . $dbName . ';');
var_dump($stmt->queryString);
$stmt->execute();
Ich möchte aber explizit das die Parameter sauber gebunden werden.
Was mache ich im oberen Beispiel falsch?
LG NetBu||