2010-06-16 5 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» нет «В» не выводятся. Это потому, что программа умирает в mysql_create_db?

+0

Возможно, это единственная причина, по которой я вижу. – Lazarus

+0

Программа, умирающая в mysql_create_db, была бы моим предположением. – ChrisF

ответ

1

Я думаю, что вы правы, но он не работает в mysql_create_db, но я бы догадался, что это SQL, с которым вы переходите. вы пытаетесь создать БД под названием «ct»? Если так, я попробую «CREATE DATABASE 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"; 
} 

может быть, это будет поймать что-то ...

Кроме того, как Франтишек Ž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

1

Какую версию PHP вы используете? В соответствии с the documentation, mysql_create_db разрознен, и вместо этого следует выдать запрос 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"; 
} 
?> 
Смежные вопросы