Всем здравствуйте. У меня вопрос относительно php и SQLite. Я пытаюсь сохранить значения форм регистра в базе данных SQLite, и это не работает?

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

У меня есть форма регистрации HTML, значения которой я пытаюсь сохранить в базе данных SQLite.

$users_db = new SQLite3('users.sqlite', SQLITE3_OPEN_CREATE | SQLITE3_OPEN_READWRITE);

$users_db->exec('CREATE TABLE IF NOT EXISTS "users" (
                "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
                "user_id" TEXT,
                "session_id" TEXT,
                "date_time" TEXT,
                "name" TEXT,
                "email" TEXT,
                "salt" TEXT,
                "password" TEXT)');

$users_db->prepare('INSERT INTO users
                VALUES (":id", ":user_id", ":session_id", ":date_time", ":name", ":email", ":salt", ":password")');

$insert_in_db = $users_db->prepare('SELECT * FROM users WHERE id=:id');

$insert_in_db->bindValue(':id', 1, SQLITE3_INTEGER);
$insert_in_db->bindValue(':user_id',  $USER_ID, SQLITE3_TEXT);
$insert_in_db->bindValue(':session_id', $SESSION_ID, SQLITE3_TEXT);
$insert_in_db->bindValue(':date_time', $DateTime, SQLITE3_TEXT);
$insert_in_db->bindValue(':name', $sanitized_name, SQLITE3_TEXT);
$insert_in_db->bindValue(':email', $sanitized_email, SQLITE3_TEXT);
$insert_in_db->bindValue(':salt', $salt, SQLITE3_TEXT);
$insert_in_db->bindValue(':password', $salt_password_hash, SQLITE3_TEXT);

$result = $insert_in_db->execute();

Я все утро пытался заставить его работать, поэтому буду очень признателен за некоторую помощь.

Приведенный выше код не содержит ошибок, однако он не сохраняет никаких значений в базе данных.

Заранее спасибо. :-)

🤔 А знаете ли вы, что...
С PHP можно создавать кастомные расширения с помощью Си-кода.


55
1

Ответ:

Решено

Убедитесь, что ваша команда вставки является фактической командой вставки, а не командой выбора, которая выполняется в данный момент:

$users_db = new SQLite3('users.sqlite', SQLITE3_OPEN_CREATE | SQLITE3_OPEN_READWRITE);

$users_db->exec('CREATE TABLE IF NOT EXISTS "users" (
                "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
                "user_id" TEXT,
                "session_id" TEXT,
                "date_time" TEXT,
                "name" TEXT,
                "email" TEXT,
                "salt" TEXT,
                "password" TEXT)');

$insert_in_db = $users_db->prepare('INSERT INTO users
                VALUES (":id", ":user_id", ":session_id", ":date_time", ":name", ":email", ":salt", ":password")');

$insert_in_db->bindValue(':id', 1, SQLITE3_INTEGER);
$insert_in_db->bindValue(':user_id',  $USER_ID, SQLITE3_TEXT);
$insert_in_db->bindValue(':session_id', $SESSION_ID, SQLITE3_TEXT);
$insert_in_db->bindValue(':date_time', $DateTime, SQLITE3_TEXT);
$insert_in_db->bindValue(':name', $sanitized_name, SQLITE3_TEXT);
$insert_in_db->bindValue(':email', $sanitized_email, SQLITE3_TEXT);
$insert_in_db->bindValue(':salt', $salt, SQLITE3_TEXT);
$insert_in_db->bindValue(':password', $salt_password_hash, SQLITE3_TEXT);

$result = $insert_in_db->execute();