Как исправить ошибку Fatal error: Uncaught PDOException: invalid data source name in?

230
01 июня 2018, 07:30

Нужно подключится к базе данных sqlite. Выдает ошибку:

Fatal error: Uncaught PDOException: invalid data source name in W:\domains\testosite.ru\index.php:2 Stack trace: #0 W:\domains\testosite.ru\index.php(2): PDO->__construct('localhost') #1 {main} thrown in W:\domains\testosite.ru\index.php on line 2

Для подключения к базе выполняю следующие действия:

  1. Создаю в папке open server каталог testosite.ru.
  2. Создаю файл index.php.
  3. Создаю папку data. Помещаю в нее adminer.
  4. Вход в админер: выбираю движок - Sqlite3 и ввожу название создаваемой базы - liga.db. 5.Создаю базу данных. В ней таблицу calendar. Заполняю данными. В папке data появляется файл liga.db. Открываю для проверки базу в админере - база создана и заполнена.
  5. В index.php создаю подключение к базе:
<?php
$dbh = new PDO ("data/liga.db"); 
$sql = "SELECT * FROM calendar;";
$res = $dbh->query($sql);
if($res){
   while ( ($row = $res->fetch(PDO::FETCH_ASSOC) ) !== false) {
      $result[] = $row;
   }
}
?>

В результате выдает вышеуказанную ошибку. Подключаюсь к базе sqlite впервые.

Answer 1

Потому что вы указали неправильный data source name (более известный как DSN). Для sqlite, например, корректным DSN будет:

sqlite:/opt/databases/mydb.sq3

Обязательное указание используемого драйвера, затем после двоеточия параметры этого драйвера. У драйвера sqlite опций всего ничего, либо указать путь к файлу базы либо указать, что база нужна временно в памяти и сохранять её не нужно. localhost указать конечно можно, но это будет расценено именно как имя файла. Потому что sqlite - это не клиент-серверная штука и никакого сетевого взаимодействия не подразумевает.

READ ALSO
Переменные из INPUT в SQL запрос

Переменные из INPUT в SQL запрос

Есть поля Input с типом datatime-local

202
Запись ответов в текстовый файл php

Запись ответов в текстовый файл php

подскажите пожалуйста, что нужно добавить в коде, чтобы в результате анкетирования ответы записывались в текстовый файл?

299
Запись в БД данных с динамических форм

Запись в БД данных с динамических форм

Имеется форма с динамическим добавления полейПодскажите пожалуйста как правильно записать данные с динамических полей в БД

253
Передать значение в php

Передать значение в php

ребят подскажите пожалуйстаЕсть код

251