Php 为什么不是“如果”而不是“其他”?

Php 为什么不是“如果”而不是“其他”?,php,if-statement,Php,If Statement,我有以下代码: $link = mysql_connect("localhost", "ctmanager", "pswsafgcsadfgG"); if ( ! $link ) die("I cannot connect to MySQL.<br>\n"); else print "Connection is established.<br>\n"; print "a"; if ( mysql_create_db("ct", $link) ) pr

我有以下代码:

$link = mysql_connect("localhost", "ctmanager", "pswsafgcsadfgG");
if ( ! $link )
   die("I cannot connect to MySQL.<br>\n");
else
    print "Connection is established.<br>\n";
print "a";

if ( mysql_create_db("ct", $link) )
   print "AAA";
else
   print "BBB";
print "2";
die();

所以,我无法理解为什么AAA和BBB都不能输出。这是因为程序在mysql\u create\u db上死掉了吗?

我想你是对的,它在mysql\u create\u db上失败了,但我想你传递给它的是SQL。您正在尝试创建一个名为ct的数据库吗?如果是这样,我会尝试创建数据库ct

您可能猜对了。尝试添加:

error_reporting(-1);
ini_set('display_errors', 'On');
在脚本的最顶端。我相信你会得到更多的细节。发布你的发现,如果需要,我会更新我的答案

此外,如果您使用PHP 5,您可以:

也许这会抓住什么

此外,正如弗朗蒂舍克·夏奇克所指出的:


函数mysql\u create\u db是 不赞成。最好使用 mysql\u查询以发出sql创建 而不是数据库语句

mysql_create_db在PHP5中不受欢迎,甚至可能已经不存在了


有关如何执行此操作的示例,请参见。

您正在运行的PHP版本是什么?根据,mysql_create_db已被降级,应该发出create DATABASE查询

if (mysql_query("CREATE DATABASE ct", $link))
  print "AAA";
else
  print "BBB";

我希望这是另一种方式

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}

$sql = 'CREATE DATABASE my_db';
if (mysql_query($sql, $link)) {
    echo "Database my_db created successfully\n";
} else {
    echo 'Error creating database: ' . mysql_error() . "\n";
}
?> 

很可能,这是我能看到的唯一原因。我的假设是程序在mysql\u create\u db上消亡。mysql\u create\u db函数已被弃用。最好使用mysql_查询来发出sql CREATE DATABASE语句。
if (mysql_query("CREATE DATABASE ct", $link))
  print "AAA";
else
  print "BBB";
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}

$sql = 'CREATE DATABASE my_db';
if (mysql_query($sql, $link)) {
    echo "Database my_db created successfully\n";
} else {
    echo 'Error creating database: ' . mysql_error() . "\n";
}
?>