2016-02-12 5 views
-1

Это мой код http://prntscr.com/a2d8qq В настоящее время я изучаю вещи, но мне действительно интересно, почему он скажет, что базы данных не выбрано, т. Е. Я выбрал ее в строке 5, также, если я удалю "dbname = users_details", а затем выполним запрос, который создает базу данных, тогда это нормально. Но всякий раз, когда я создаю таблицу в этой базе данных (я ее выбрал), она не сделает меня, я искал в Google, и это действительно то же самое с моим кодом, но мой не будет работать.PHP PDO, подключение к базе данных/выбор базы данных + выполнение

<?php 

    try { 

     $connect = new PDO("mysql: host = 'localhost'; dbname = users_details", 'root', ''); 
     $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

      $sqlQuery = "CREATE TABLE MyGuests (
         id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
         firstname VARCHAR(30) NOT NULL, 
         lastname VARCHAR(30) NOT NULL, 
         email VARCHAR(50), 
         reg_date TIMESTAMP 
         )"; 

       $connect->exec($sqlQuery); 
        echo 'Successfully created table.'; 

    } 

    catch(PDOException $e) { 

     echo $e->getMessage(); 

    } 
?> 
+1

у вас есть база данных с именем 'user_details'? если вы берете, что из, то вы не указали базы данных по умолчанию, и MySQL не имеет представления о том, какие из многочисленных баз данных, он может разместить вы хотите для создания вашей таблицы. –

+0

Здравствуйте, спасибо за ответ, это в настоящее время то, что у меня есть в моем p hpmyadmin и мой код: http://prntscr.com/a2dfzh – Fur

+0

[важно следовать правильному формату - в DSN не должно использоваться никаких фантастических пространств или других украшений.] (https://phpdelusions.net/pdo# dsn) –

ответ

-1

Так это фиксированная моя проблема:. Я должен выполнить запрос, чтобы использовать указанную базу данных в которой я хочу, чтобы мои таблицы, чтобы быть в Тогда в строке 5 я просто удалил «DBName =

<?php 

try { 

    $connect = new PDO("mysql: host = 'localhost';", 'root', ''); 
    $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

     $sqlQuery = "CREATE TABLE details (
        id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
        firstname VARCHAR(30) NOT NULL, 
        lastname VARCHAR(30) NOT NULL, 
        email VARCHAR(50), 
        reg_date TIMESTAMP 
        )"; 

      $connect->exec("use users_details"); 
      $connect->exec($sqlQuery); 
       echo 'Successfully created table.'; 

} 

catch(PDOException $e) { 

    echo $e->getMessage(); 

} 

?>

+0

Rajdeeps Paul комментирует это для эффективности, я думаю, у меня проблемы с OC, поэтому, я думаю, что идея hes хорошая. – Fur

Смежные вопросы