Ich habe den folgenden Code:CREATE TABLE IF NOT mit Tabelle ist bereits vorhanden nicht vorhanden
$db_host = 'localhost';
$db_port = '3306';
$db_username = 'root';
$db_password = 'root';
$db_primaryDatabase = 'dsl_ams';
// Connect to the database, using the predefined database variables in /assets/repository/mysql.php
$dbConnection = new mysqli($db_host, $db_username, $db_password, $db_primaryDatabase);
// If there are errors (if the no# of errors is > 1), print out the error and cancel loading the page via exit();
if (mysqli_connect_errno()) {
printf("Could not connect to MySQL databse: %s\n", mysqli_connect_error());
exit();
}
$queryCreateUsersTable = "CREATE TABLE IF NOT EXISTS `USERS` (
`ID` int(11) unsigned NOT NULL auto_increment,
`EMAIL` varchar(255) NOT NULL default '',
`PASSWORD` varchar(255) NOT NULL default '',
`PERMISSION_LEVEL` tinyint(1) unsigned NOT NULL default '1',
`APPLICATION_COMPLETED` boolean NOT NULL default '0',
`APPLICATION_IN_PROGRESS` boolean NOT NULL default '0',
PRIMARY KEY (`ID`)
)";
if(!$dbConnection->query($queryCreateUsersTable)){
echo "Table creation failed: (" . $dbConnection->errno . ") " . $dbConnection->error;
}
welche Ausgänge ...
Table creation failed: (1050) Table '
dsl_ams .
NUTZER ' already exists
Was ich nicht verstehe, ist: ist nicht IF NOT EXISTS
soll die Ausführung der SQL-Abfrage abbrechen, wenn diese Tabelle bereits existiert? Mit anderen Worten, wenn die Tabelle existiert, sollte sie die if-Anweisung nicht verlassen und überhaupt nichts aussprechen und nicht versuchen, die Abfrage auszuführen?
Nur versuchen, den besten Weg zu finden, "eine Tabelle zu erstellen, wenn sie nicht existiert", ohne etwas an den Benutzer auszugeben.
'$ queryCreateUsersTable! = $ QueryCreateTable', würde ich Benachrichtigungen aktivieren, um diese Art von Fehlern zu sehen. – Wrikken
"Benachrichtigungen aktivieren"? Was meinen Sie? und ja, total derp meinerseits. –
Setzen von error_reporting auf die richtige Ebene ('error_reporting (E_ALL | E_STRICT);' ist das, was ich beim Entwickeln verwenden würde) & 'ini_set ('display_errors', 1);' ini_set_s ('log_errors', 1); 'auf Ihrer Produktionsbox (keine Notwendigkeit, den Endbenutzern Fehler anzuzeigen) – Wrikken