У меня есть экран входа, в котором пользователь вводит свое имя пользователя и пароль. Мне удалось подключиться к базе данных с помощью PDO, но я должен изменить ее на mysqli. Может кто-то, пожалуйста, помогите мне преобразовать его в mysqli. Заранее спасибо.Как преобразовать PDO в mysqli?
PDO:
<?php
try {
$database = new PDO('mysql:host=localhost;dbname=myfiles', 'root', '',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$query = "SELECT * FROM users WHERE Username = ? AND Password = ?";
$userParam = array($_POST["Uname"], $_POST["Pass"]);
$st = $database->prepare($query);
$st->execute($userParam);
$getResults = $st->fetch(PDO::FETCH_ASSOC);
session_start();
$_SESSION['details']['username'] = $getResults['Username'];
$_SESSION['details']['password'] = $getResults['Password'];
unset($database);
header("Location: index.php");
}
catch(PDOException $e)
{
print "Error!: " . $e->getMessage() . "<br/>";
exit();
}
?>
Mysqli (Это то, что я пытался)
<?php
try {
$database = mysqli_connect("localhost", "root", "", "myfiles");
$query = mysqli_query("SELECT * FROM users WHERE Username = ? AND Password = ?");
$userParam = array($_POST["Uname"], $_POST["Pass"]);
$st = $database->prepare($query);
$st->execute($userParam);
$getResults = mysqli_fetch_assoc($query);
session_start();
$_SESSION['details']['username'] = $results['Username'];
$_SESSION['details']['password'] = $results['Password'];
unset($database);
header("Location: index.php");
} catch (Exception $e) {
print "Error!: " . $e->getMessage() . "<br/>";
exit();
}
?>
Ошибка при запуске Mysqli код:
Warning: mysqli_query() expects at least 2 parameters, 1 given in G:\xampp\htdocs\old\drop\login.php on line 39
Fatal error: Call to a member function execute() on a non-object in G:\xampp\htdocs\old\drop\login.php on line 43
Update:
Mysqli
<?php
try {
$database = mysqli_connect("localhost", "root", "", "myfiles");
$query = "SELECT * FROM users WHERE Username = ? AND Password = ?";
$userParam = array($_POST["Uname"], $_POST["Pass"]);
$st = $database->prepare($query);
$st->execute($userParam);
$getResults = mysqli_fetch_assoc($st);
session_start();
$_SESSION['details']['username'] = $getResults['Username'];
$_SESSION['details']['password'] = $getResults['Password'];
unset($database);
header("Location: index.php");
} catch (Exception $e) {
print "Error!: " . $e->getMessage() . "<br/>";
exit();
}
?>
"Waiting for localhost"
Это походит на шаг назад. Почему mysqli? – tadman