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

时间:2010-06-16 12:35:24

标签: 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) )
   print "AAA";
else
   print "BBB";
print "2";
die();

这是输出:

Connection is established.
a

所以,我无法理解输出“AAA”和“BBB”的可能性如何。是因为程序在mysql_create_db死亡了吗?

5 个答案:

答案 0 :(得分:8)

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

error_reporting(-1);
ini_set('display_errors', 'On');

位于脚本的最顶层。你肯定会得到更多细节。发布您的发现,如果需要,我会更新我的答案。

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

try
{
    if (mysql_create_db("ct", $link)) 
        echo 'AAA'; 
    else
        echo 'BBB'; 
}
catch (Exception $e)
{
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

也许这会抓住一些东西......

另外,正如FrantišekŽiačik用his link指出的那样:

  

函数mysql_create_db()是   弃用。最好使用   mysql_query()发出一个sql CREATE   改为使用DATABASE语句。

答案 1 :(得分:2)

mysql_create_db在PHP5中已弃用,可能甚至不存在。

有关如何操作的示例,请参阅http://php.net/manual/en/function.mysql-create-db.php

答案 2 :(得分:1)

我认为你是对的,它在mysql_create_db失败但我猜它是你传入它的SQL。你想创建一个名为“ct”的数据库吗?如果是这样,我会尝试“CREATE DATABASE ct”

答案 3 :(得分:1)

您运行的是哪个PHP版本?根据{{​​3}},我们不推荐使用mysql_create_db,而是应该发出CREATE DATABASE个查询。

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

答案 4 :(得分:0)

我认为这有望成为替代方式。

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