2015-12-23 8 views
1

Я делаю ToDo Web App с помощью PHP и я столкнулся с этой ошибкой при подключении к базе данных:PHP Ошибка базы данных «CONSTANT_ENCAPSED_STRING»

Parse error: syntax error, unexpected ''u352634928_list'' (T_CONSTANT_ENCAPSED_STRING) in /home/u352634928/public_html/app/init.php on line 7

Чтобы увидеть ошибки для себя, сайт онлайн here

index.php:

<?php 
require_once 'app/init.php'; 

$itemsQuery = $db->prepare(" 
SELECT id, name, done 
FROM items 
WHERE user = :user 
"); 
$itemsQuery->execute([ 
'user' => $_SESSION['user_id'] 
]); 

$items = $itemsQuery->rowCount() ? $itemsQuery : []; 
foreach ($items as $item) { 
echo $item['name'], '<br>'; 
} 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Darshil Patel</title> 
<link rel="stylesheet" type="text/css" href="main.css"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
</head> 
<body> 
<div class="list"> 
    <h1 class="header">To do.</h1> 

    <ul class="items"> 
     <li> 
      <span class="item">Pick Up Shopping</span> 
      <a href="#" class="done-button">Mark as done</a> 
     </li> 
    </ul> 

    <form class="item-add" action="add.php" method="post"> 
     <input type="text" name="name" placeholder="Add a New Item" class="input" autocomplete="off" required> 
     <input type="submit" value="Add" class="submit"> 
    </form> 
</div> 

init.php:

<?php 

session_start(); 

$_SESSION['user_id'] = 1; 

$db = new PDO('mysql:host==mysql.hostinger.co.uk;dbname= u352634928_todo' 'u352634928_list', 'password here'); 

if(!isset($_SESSION['user_id'])) { 
die('You are not signed in'); 
} ?> 
+0

отсутствует coma ..... попробуйте получить редактор с подсветкой основного синтаксиса в режиме аренды. – bansi

+0

@bansi Я исправил это, и я получил новую ошибку Неустранимая ошибка: исключить исключение «PDOException» с сообщением «SQLSTATE [42000] [1044] Доступ запрещен для пользователя 'u352634928_list'@'10.2.1.1' к базе данных ' u352634928_todo '' в /home/u352634928/public_html/app/init.php:7 Трассировка стека: # 0 /home/u352634928/public_html/app/init.php(7): PDO -> __ construct ('mysql: host = mysq ... ',' u352634928_list ',' Saibaba2 ') # 1 /home/u352634928/public_html/index.php(2): require_once ('/home/u35263492 ... ') # 2 {main} throw in/home /u352634928/public_html/app/init.php в строке 7 –

+0

'host = mysql.hostinger.co.uk' и проверить разрешения – bansi

ответ

1

Вы упускаете запятой (,) на этой линии:

$db = new PDO('mysql:host==mysql.hostinger.co.uk;dbname= u352634928_todo', 'u352634928_list', 'password here'); 
+0

Неустранимая ошибка: не удалось исключить« PDOException »с сообщением« SQLSTATE [42000] [1044] Доступ запрещен для пользователь 'u352634928_list'@'10.2.1.1' в базу данных 'u352634928_todo' 'в /home/u352634928/public_html/app/init.php:7 Трассировка стека: # 0 /home/u352634928/public_html/app/init.php(7): PDO -> __ construct ('mysql: host = mysq ...', 'u352634928_list', 'Saibaba2') # 1/home/u352634928/public_html/index.php (2): require_once ('/ home/u35263492 ...') # 2 {main} брошен в /home/u352634928/public_html/app/init.php в строке 7 –

+0

Имя пользователя и пароль верный? Доступен ли пользователь к базе данных? и т. д. – Darren

+0

Я думаю, что это, вероятно, это, спасибо за помощь! –

0

это увидеть: http://php.net/manual/en/pdo.construct.php

в строке 7, == следует заменить =

+0

Нет, не должно. SQL не использует оператор '=='. 'WHERE user =: user' абсолютно корректен как есть. – duskwuff

+0

Да, вы сказали, что я имею в виду, я точно говорю 'mysql: host == mysql.hostinger.co.uk;' возможно, должен быть заменен на '=', а также между запятой между запятой нет. – MartiaHiblite

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