2010-06-16 22 views
0

我有這樣的代碼:爲什麼不是「如果」而不是「其他」?

$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

+0

很可能,這是我能看到的唯一原因。 – Lazarus 2010-06-16 12:36:41

+0

死於'mysql_create_db'的程序是我的假設。 – ChrisF 2010-06-16 12:37:51

回答

1

我認爲你是對的,它在mysql_create_db失敗,但我想這是你傳入它的SQL。你想創建一個名爲「ct」的數據庫嗎?如果是這樣,我會嘗試「創建數據庫ct」

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

也許這將趕上東西...

此外,作爲FRANTISEKŽiačik指出了his link

函數mysql_create_db()不推薦使用 。最好使用 mysql_query()來發出sql CREATE DATABASE語句。

2

mysql_create_db在PHP5中被棄用,可能甚至不存在了。

查看http://php.net/manual/en/function.mysql-create-db.php舉例說明如何操作。

+0

函數mysql_create_db()已棄用。最好使用mysql_query()來發出sql CREATE DATABASE語句。 – AlexV 2010-06-16 12:52:19

1

你運行的是哪個PHP版本?根據the documentationmysql_create_db是depraated,而CREATE DATABASE查詢應該發出,而不是。

if (mysql_query("CREATE DATABASE ct", $link)) 
    print "AAA"; 
else 
    print "BBB"; 
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"; 
} 
?> 
相關問題