Hintergrundinformationen: Ich versuche, eine TODO-App zu erstellen

<?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>
<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('msql_dbname= u352634928_list;host=mysql.hostinger.co.uk', 'mysql.hostinger.co.uk', 'password');

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

Ich bin nicht sicher, warum ich diesen Fehler erhalte:

Schwerwiegender Fehler: Nicht erfasste Ausnahme 'PDOException' mit der Meldung 'Ungültiger Datenquellenname' in /home/u352634928/public_html/app/init.php:7 Stapelverfolgung: # 0 /home/u352634928/public_html/app/init.php(7 ): PDO -> __ Konstrukt ('msql_dbname = u35 ...', 'u352634928_list', 'Passwort')

1 /home/u352634928/public_html/index.php(2): require_once ('/ home / u35263492 ...') # 2 {main} eingeworfen

/home/u352634928/public_html/app/init.php in Zeile 7

-3
lazerrouge 23 Dez. 2015 im 07:41

4 Antworten

Beste Antwort

Sie haben ein Leerzeichen zwischen <? und php gelassen. Also mach es gleich beim ersten Mal <?php

1
Gideon Appoh 23 Dez. 2015 im 04:43

Einfacher Tippfehler:

Veränderung

<? php 

Zu

<?php 

Grundsätzlich enden alle PHP-Anweisungen mit einem Semikolon ;.

In Ihrem Fall beginnt Ihr PHP mit <?. Sie haben vor php Speicherplatz hinzugefügt.

php ist also eine Anweisung, die nicht mit ; endet.

Das ist der Grund für den Analysefehler.

1
Pupil 23 Dez. 2015 im 04:45

Ändern Sie <? php in <?php und entfernen Sie den Zwischenraum.

einmalig benötigt

pdo

1
Sanjuktha 23 Dez. 2015 im 05:36

Dies ist die richtige Syntax für die Verbindung mit der MySQL-Datenbank:

$dbh = new PDO("mysql:host=$hostname;dbname=mysql", $username, $password);

Für dich

$db = new PDO("mysql:host=mysql.hostinger.co.uk;dbname= u352634928_list", 'mysql.hostinger.co.uk', 'password');
1
marc_s 8 Okt. 2016 im 20:36