Hej drenge og piger.
Jeg har altid været vant til at arbejde med mysql og ikke mysqli, så at skulle gå over til mysql er lige pludselig helt anderledes.
Men da jeg sagtens kan forstå fordelene og den markant bedre sikkerhed ved at anvende mysqli så vil jeg selvfølgelig gerne skifte over til det.
Men jeg forstår bare ikke helt hvordan jeg skifter over til den.
Det her er hvad jeg har på mit login so far.
- if(isset($_POST['login'])) {
- $username = $mysqli -> real_escape_string($_POST['username']);
- $password = $mysqli -> real_escape_string($_POST['password']);
-
- if(!$username||!$password) {
- $msg = "Udfyld venligst begge felter";
- exit();
- } else {
- $user = $mysqli->prepare("SELECT id FROM user WHERE username = ? AND password = ?");
-
- }
-
- }
Prøver at komme på php manualen men der er vist noget galt med den :s
EDIT:Koden er nu ændret til dette:
- if(isset($_POST['login'])) {
- $username = ($_POST['username']);
- $password = ($_POST['password']);
-
- if(!$username||!$password) {
- echo "Udfyld venligst begge felter";
- exit();
- } else {
- if($user = mysqli_prepare($connect, "SELECT id FROM user WHERE username = ?")) {
- mysqli_stmt_bind_param($user, "s", $username);
- mysqli_stmt_execute($user);
- mysqli_stmt_bind_result($user, $id);
- mysqli_stmt_fetch($user);
- echo $id;
- }
- }
- }
Den udskriver bare ikke noget
EDIT EDIT:Koden er nu denne og den udskriver
- $query = "SELECT id FROM user WHERE username = ?";
- $stmt = mysqli_prepare($connect, $query);
- mysqli_stmt_bind_param($stmt, "s", $username);
- mysqli_stmt_execute($stmt);
- mysqli_stmt_bind_result($stmt, $id);
- mysqli_stmt_fetch($stmt);
- echo $id;
Den laver også bare denne fejl. Men forstår bare ikke lige hvorfor?
Fatal error: Call to a member function execute() on a non-object in C:\wamp\www\mboard\login.php on line 40
Rettet: Fejl fundet. Jeg manglede at tilføje:
mysqli_stmt_close();
Det næste bliver så hvordan jeg får talt hvor mange rows den finder så jeg kan teste om der kun findes en bruger med dette login?
Indlæg senest redigeret d. 04.05.2012 23:32 af Bruger #15663