2016-02-12 84 views
-1

这是我的代码http://prntscr.com/a2d8qq目前,我正在学习的东西,但我真的不知道为什么它会说,没有选择的,尽管我在第5行已经选择了它的数据库,另外,如果我删除"dbname = users_details",然后执行创建一个DATABSE那么它是精细的查询。但每当我在该数据库(我选择了它),它不会让我创建一个表,我搜索整个谷歌和它确实是相同的,以我的代码,但该矿将无法正常工作。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保罗评论指甲以提高效率我想,我有OC问题,所以,我觉得他的想法是好的。 – Fur