Почему это не «если» и не «еще»? - PullRequest
0 голосов
/ 16 июня 2010

У меня есть этот код:

$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 ]

8 голосов
/ 16 июня 2010

Вы, наверное, догадались правильно.Попробуйте добавить:

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

в самом верху вашего скрипта.Вы получите больше деталей, я уверен.Опубликуйте свои результаты, и я обновлю свой ответ, если это необходимо.

Кроме того, если вы используете PHP 5, вы можете попробовать :

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

, возможно, это будетпоймать что-нибудь ...

Также, как указал Франтишек Жячик с своей ссылкой :

Функция mysql_create_db () устарела.Вместо этого предпочтительно использовать mysql_query () для выдачи оператора SQL CREATE DATABASE.

2 голосов
/ 16 июня 2010

mysql_create_db устарела в PHP5, возможно, там даже больше не существует.

См. http://php.net/manual/en/function.mysql-create-db.php для примера, как это сделать.

1 голос
/ 16 июня 2010

Какую версию PHP вы используете?Согласно документация , mysql_create_db является устаревшей, и вместо нее следует выполнить запрос CREATE DATABASE.

if (mysql_query("CREATE DATABASE ct", $link))
  print "AAA";
else
  print "BBB";
1 голос
/ 16 июня 2010

Я думаю, что вы правы, сбой в mysql_create_db, но я думаю, что это SQL, который вы передаете в него. Вы пытаетесь создать базу данных с именем "ct"? Если это так, я бы попробовал "CREATE DATABASE ct"

0 голосов
/ 16 июня 2010

Я думаю, что это будет альтернативный путь, надеюсь.

<?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";
}
?> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...