2016-02-09 6 views
0

Привет, ребята Не знаю, что я делаю неправильно, уже пробовал все предлагаемые идеи в stackoverflow по-прежнему не устраняя ошибки.Подключение к базе данных PHP PDO

код:

<?php  
    include 'db_connect.php';  
    // create client table 

    try {  
      $sql = 'CREATE TABLE client (
        id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
        name VARCHAR(40) NOT NULL, 
        phone INT NOT NULL, 
        email VARCHAR(60) NOT NULL, 
        address TEXT 
     ) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB'; 

      $pdo->exec($sql); 

    } 
    catch(PDOException $e) {  
      $error = 'Error creating customer table: '.$e->getMessage();  
      include 'error.html.php';  
      exit();  
    } 

    $output = "Customer table created succesfuly";  
    include 'output.php'; 
?> 

db_connect.php код:

<?php 
    $host = "localhost"; 
    $db = "hotelDB"; 
    $dbuser = "hotelAuth"; 
    $password = "+_90-w4903nsdkfn";  

    // connecting to DB using PDO 

    try {  
     $pdo = new PDO("mysql:host = {$host}; dbname = {$db}", "{$dbuser}", "{$password}");  
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
     $pdo->exec('SET NAMES "utf8"');  
    } 
    catch(PDOException $e) {  
     $error = "Error Occured While Connecting TO Database: ".$e->getMessage();  
     include 'error.html.php';  
     exit();  
    }  

    // On successful connection include booking form.  
    $ack = "Secure Connection established.";  
?> 

вы можете увидеть ошибку в изображении. пожалуйста, помогите мне решить это. enter image description here

+0

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

+0

То же самое касается пользователя и пароля, которые имеют который будет рассматриваться как «$ dbuser, $ password». –

+0

с 'include 'error.html.php';' - вы должны делать это в обработчике ошибок, но не в блоке catch. –

ответ

0

Похоже, что ваше соединение с вашей базой данных неверно, поскольку сообщение об ошибке из базы данных не выбрало, где создать таблицу. Вот как подключиться к PDO:

<?php 

    $dbuser = "hotelAuth"; 
    $password = "+_90-w4903nsdkfn"; 

    // connecting to DB using PDO 
    try{ 

      $dbPDO = new PDO('mysql:host=localhost;dbname=hotelDB', $dbuser, $password); 
      $dbPDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
      $pdo->exec('SET NAMES "utf8"'); 
      echo "Connection was successful"; 

    } catch(PDOException $e){ 

      print "Error!: " . $e->getMessage() . "<br />"; 
      die(); 

    } 

    // On successful connection include booking form. 
    $ack = "Secure Connection established."; 

?> 

Попробуйте это и посмотрите, работает ли оно для вас.

+0

Обратите внимание, что [вы никогда не должны ловить ошибки, чтобы сообщить об этом] (https://phpdelusions.net/pdo#errors) –

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