【发布时间】:2013-05-09 09:59:16
【问题描述】:
我有以下代码:
$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`.`USERS`' already exists
我不明白的是:如果该表已经存在,IF NOT EXISTS 不应该取消 SQL 查询的执行吗?换句话说,如果表存在,它是否应该退出该 if 语句并且根本不回显任何内容,并且不尝试执行查询?
只是试图找到最好的方法来“创建一个不存在的表”而不向用户输出任何内容。
【问题讨论】:
-
这里有点不对劲。 See possible dupe (and this one) 进行一些维护?
-
看起来确实是同一个问题,很好的发现!
-
目前还没有骰子...puu.sh/2TEHp.png - 真的,真的不存在..
-
它也不存在于实际文件夹中:puu.sh/2TEJL.png
标签: php mysql mysqli mysql-error-1050