Я совершенно не знаком с программированием (обычно я - системный администратор), но теперь мне нужно сделать проект, в котором вы можете зарегистрироваться и войти в систему с помощью PHP и SQLite (альтернативы нет).
мне нужно получить заявление, в котором я могу сделать запрос:Проверка наличия записи с PHP и sqlite
is there a user with the name from
$_POST['username']
с SQLite. Я просто не понимаю ... Я нашел несколько статей, но никто из них не помог мне.
Это мой код:
$db = new PDO('sqlite:mysqlitedb.db');
$sql_create_table_users = 'CREATE TABLE IF NOT EXISTS users (
user_id INTEGER PRIMARY KEY,
user_name TEXT,
user_password TEXT
)';
$db->execute($sql_create_table_users);
$username = $_POST['username'];
$sql_checkuserexist = 'SELECT * FROM users WHERE user_name = :user_name';
$stmt = $db->prepare($sql_checkuserexist);
$stmt->execute(array(':user_name'=>$username));
$result = $stmt->fetchAll();
if (count($result) > 0) {
echo 'Exists';
} else {
echo 'Does not exist';
}
Но здесь я получаю эту ошибку:
Fatal error: Call to undefined method SQLite3Stmt::exec()
Эта ошибка показывает в строке, где у меня есть
$stmt->execute(array(':user_name'=>$username));
Кто-нибудь знает, почему ? Моя таблица называется «пользователями» и имеет 3 строки: user_id, user_name и user_password.
@Kostas: Это мой текущий код, который вы мне дали (я только работать с этим кодом атм):
try {
//Make your connection handler to your database
$db = new PDO('sqlite:mysqlitedb.db');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql_create_table_users = 'CREATE TABLE IF NOT EXISTS users (
user_id INTEGER PRIMARY KEY,
user_name TEXT,
user_password TEXT
)';
$stmt->execute($sql_create_table_users);
$sql = "SELECT * FROM users WHERE user_name = :username";
//Prepared statements so no SQL Injection occurs
$stmt = $db->prepare($sql);
//Execute your query
$stmt->exec(array(':username'=>$_POST['username']));
$result = $stmt->fetchAll();
if (count($result) > 0) {
echo 'Exists';
} else {
echo 'Does not exist';
}
} catch(PDOException $e) {
echo $e->getMessage();
die();
}
Вам необходимо подключиться к базе данных. –
Перейти к: $ db = новый PDO ('sqlite: mysqlitedb.db'); –
ничего не менял ... есть еще эта ошибка – MichelleH