मैं निम्नलिखित कोड है:CREATE TABLE नहीं मौजूद है, तो तालिका के साथ विफल रहता है पहले से मौजूद है
$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;
}
कौन सा आउटपुट ...
Table creation failed: (1050) Table '
dsl_ams .
उपयोगकर्ताओं ' already exists
मैं क्या समझ में नहीं आता है: IF NOT EXISTS
SQL क्वेरी के निष्पादन को रद्द करना नहीं है यदि वह तालिका पहले से मौजूद है? दूसरे शब्दों में, यदि तालिका मौजूद है, तो क्या यह बाहर निकलना नहीं चाहिए कि अगर कथन और कुछ भी गूंज न करें, और क्वेरी निष्पादित करने का प्रयास न करें?
उपयोगकर्ता को कुछ भी आउटपुट किए बिना "तालिका बनायें यदि यह अस्तित्व में नहीं है" का सबसे अच्छा तरीका खोजने का प्रयास कर रहा है।
'$ queryCreateUsersTable! = $ QueryCreateTable', मैं इस तरह की त्रुटियों को देखने के लिए नोटिस सक्षम करता हूं। – Wrikken
"नोटिस सक्षम करें"? आपका मतलब क्या है? और हाँ, मेरे हिस्से पर कुल derp। –
सेटिंग सही स्तर तक error_reporting |; & 'ini_set ('display_errors', 1) (' error_reporting (E_ALL E_STRICT) 'मैं क्या विकासशील के दौरान उपयोग होता है);' अपने विकास के वातावरण पर, 'ini_set ('log_errors', 1); 'आपके उत्पादन बॉक्स पर (उपयोगकर्ताओं को अंतिम त्रुटियों को प्रदर्शित करने की आवश्यकता नहीं है) – Wrikken