Базы данных SQLite PDO в PHP - PullRequest
       3

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

0 голосов
/ 28 октября 2011

ТАК, я пытался найти ответ в Интернете, но, похоже, я не получил ответ. Я читал все ссылки на 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"  />
<p><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!';
}
?>

Всякий раз, когда я вводю что-то в форму и нажимаю «Отправить», вывод будет следующим:

"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!'; } ?>"

Единственная проблема в том, что я понимаю, что вывод - это то, что находится после ->. Но почему это происходит? Я просто хотел проверить это, и я не могу заставить работать выходы, например, что после эха.

Что можно сделать, чтобы это исправить? Есть идеи? Спасибо, прежде чем руку. ^^

1 Ответ

2 голосов
/ 28 октября 2011

Во-первых, включите создание отчетов об ошибках для разработки, поместив это в верхнюю часть вашего скрипта

ini_set('display_errors', 'On');
error_reporting(E_ALL);

Во-вторых, ваш DSite SQLite неверен.Это должно быть либо

sqlite:/path/to/database/file

, либо

sqlite::memory:

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

Ваш параметр привязки также неверен.К нему следует добавить префикс двоеточия, например

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

То же самое относится и к другим операторам и привязкам.

Наконец, я не совсем верю коду, который вы разместили в своем вопросетак же, как это выглядит в вашей среде.Не могли бы вы дважды проверить и опубликовать какие-либо исправления?

Кроме того, отправка учетных данных через форму GET, не круто.Используйте POST вместо этого.Хранение простых текстовых паролей, также нет-нет.


Обновление

Если подумать, учитывая то, что вы видите, я сомневаюсь, что вы запускаете это наPHP включен веб-сервер.Убедитесь, что у вас есть работающий веб-сервер с PHP, установленным в качестве модуля или CGI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...