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";
}
?>