Бази даних SQLite PDO в PHP

Так, я намагався шукати відповідь в Інтернеті, але я, здається, не отримав відповіді. Я читаю всі посилання PHP на http://php.net , і я все одно не можу знайти конкретна відповідь на це .. У всякому разі.

Моє питання:

У мене є вихідний файл PHP, який завантажується у файл HTML за допомогою:

<form name="input" action="register.php" method="get">
User: <input type="text" name="user"  />
Pass: <input type="text" name="pass"  />

<input type="submit" value="Submit" /> </form>

Поки що так добре, чи не так? Тож у мене є цей .php файл:

<?php
    $db = new PDO('sqlite::database:');
    $a = $_GET['user'];
    $b = $_GET['pass'];

    $firstSearchF = $db->prepare('SELECT nome FROM Users WHERE name_U = _nome');
    $firstSearchF->bindParam('_nome', $a, PDO::PARAM_STR);
    $firstSearchF->execute();
$firstSearch = $firstSearchF->fetch();

    if(empty($firstSearch))
    {
        $final = $db->prepare('INSERT INTO Users (name_u,password) VALUES(nome,passW)');
    $final->bindParam('nome', $a, PDO::PARAM_STR);
    $final->bindParam('passW', $b, PDO::PARAM_STR);
    $final->execute();

    echo 'User Registered Successfully!';
}
else
{
    echo 'Sorry, but the requested user already exists in the database. Try again!';
}
?>

Кожного разу, коли я ввожу щось у форму, і натисніть Submit, вихід буде наступним:

"prepare('SELECT nome FROM Users WHERE name_U = _nome'); $firstSearchF->bindParam('_nome', $a, PDO::PARAM_STR); $firstSearchF->execute(); $firstSearch = $firstSearchF->fetch(); if(empty($firstSearch)) { $final = $db->prepare('INSERT INTO Users (name_u,password) VALUES(nome,passW)'); $final->bindParam('nome', $a, PDO::PARAM_STR); $final->bindParam('passW', $b, PDO::PARAM_STR); $final->execute(); echo 'User Registered Successfully!'; } else { echo 'Sorry, but the requested user already exists in the database. Try again!'; } ?>"

The only problem is that I understand that the output is what's in after the ->. But why does that happen? I just wanted to test this out, and I can't make the outputs work, as in, what's after the echos.

Що можна зробити, щоб це виправити? Будь-які ідеї? Дякую перед рукою. ^ ^

1

1 Відповіді

Перше, включіть звіт про помилки для розробки, розмістивши це у верхній частині вашого сценарію

ini_set('display_errабоs', 'On');
errабо_repабоting(E_ALL);

По-друге, ваш SQLite DSN неправильний. Це має бути або

sqlite:/path/to/database/file

або

sqlite::memабоy:

See http://www.php.net/manual/en/ref.pdo-sqlite.connection.php

Your bind parameter is also incабоrect. It should be prefixed with a colon, eg

$firstSearchF = $db->prepare('SELECT nome FROM Users WHERE name_U = :nome');
$firstSearchF->bindParam('nome', $a, PDO::PARAM_STR);

Same goes fабо the other statements and binding.

Lastly, I don't fully believe the code you've posted in your question is the same as it appears in your environment. Could you double check and post any cабоrections?

Also, submitting credentials via a GET fабоm, not cool. Use POST instead. Stабоing plain-text passwабоds, also a no-no.


Оновити

Come to think of it, given what you're seeing, I doubt you're running this on a PHP enabled web server. Confirm that you have a running web server with PHP installed as a module або CGI.

2
додано
Я думаю, що ваше "оновлення" є правильним, чи цей сценарій навіть виконується як PHP? jsfiddle.net/g9Sju забавно ... :)
додано Автор Wesley Murch, джерело
@Nelspike: Вам потрібен сервер та встановлений PHP, ви не можете просто відкрити файл у своєму браузері з будь-якого випадкового місця на своєму комп'ютері і очікувати його виконання PHP (однак HTML працюватиме, оскільки він запускається в браузері). Див. WAMP або MAMP .
додано Автор Wesley Murch, джерело
@Nelspike Спробуйте простий тест, подібний до цього <? PHP $ world = 'sailor'; ехо "Привіт, $ світ!"; ?>
додано Автор Phil, джерело
@Nelspike або мій улюблений - Zend Server CE
додано Автор Phil, джерело
Ну, я прочитати все, і я теж міняв речі, але я, здається, отримую ті ж результати. Все, що я роблю, створює .php на блокнот + +, а потім запускає html з формою в Firefox. Крім того, паролі звичайного тексту - це лише питання тестування, оскільки це для проекту Uni, насправді досить просто. Що я не розумію, чому у мене виникають проблеми на виході.
додано Автор Nelspike, джерело
Ну, відповідно до того, що я бачив у класі, так, він виконується як PHP. Я не бачу помилок у коді, тому я питаю це. Немає сенсу, що воно взагалі не спрацьовує, тому що простий ехо "Hello World"; іде чудово.
додано Автор Nelspike, джерело
Ну, це те, що нічого не вводиться на екран .. Якась дивна, тепер я думаю про це. Я мав такі речі, які чудово підійшли до класу. Навіть створив скрипт для збільшення чисел дуже швидко.
додано Автор Nelspike, джерело
Ukrainian PHP comunity
Ukrainian PHP comunity
885 учасників

dev-ua/php

IT KPI - Databases
IT KPI - Databases
162 учасників