Avatar billede DePlex Nybegynder
20. april 2011 - 14:06 Der er 2 kommentarer og
1 løsning

Opdatere

Hej eksperter.

Hvorfor opdatere den ikke de felter jeg vil have med denne kode:


$sql = $dbh->prepare('UPDATE users SET aktivering = ? WHERE code = ? AND navn = ?');
$sql->bind_param('iss', 1, $code, $navn);
$sql->execute();
if($sql->affected_rows == 1){
return true;

Den opdatere ikke, men alligevel får jeg true tilbage. Hvorfor gør jeg det?
Avatar billede DePlex Nybegynder
20. april 2011 - 14:37 #1
Har lige fundet ud af problemet er meget større. Den går slet ikke igennem nogle af mine if statements eller noget af det andet jeg  har. Her er min kode:

<?
function getDBH() {
    static $DBH = null;
    if (is_null($DBH)) {
        $DBH = new mysqli('kage', 'kage', 'kage', 'frugt');
    }
    if (mysqli_connect_errno()) {
    printf('Connecting error');
    exit();
}else{
    return $DBH;
}
}

function activate($var){
    $dbh = getDBH();
    if(preg_match('/[^0-9a-f]{32}/i',stripslashes(trim($var)))){
        $stmt = $dbh->prepare('SELECT code, navn FROM users WHERE code = ?');
        $stmt->bind_param('s', $var);
        $stmt->execute();
        $stmt->bind_result($code, $navn);
        $stmt->fetch();
        $stmt->free_result();
        if($stmt->num_rows == 1 && $code && $navn){
        $sql = $dbh->prepare('UPDATE users SET aktivering = ? WHERE code = ? AND navn = ?');
        $sql->bind_param('iss', 1, $code, $navn);
        $sql->execute();
        $sql->store_result();
        if($sql->affected_rows == 1){
            return true;
        }else{
            functions('errorTjek');
            return $error = error('noEffect');
        }
        }else{
            functions('errorTjek');
            return $error = error('noMatchAkk');
        }
    }else{
        functions('errorTjek');
        return $error = error('codeError');
    }
}
?>

Og det hvor den bliver kørt:

<?php
session_start();

function functions($value)
{
    require("functions/" . $value . ".php");   
}
functions('activation');
functions('ipTjek');

if(!$_SESSION['login'] == 1){
    if($_GET['code']){
        $aktivering = activate($_GET['code']);
        if($aktivering == true){
            echo 'Din bruger blev korrekt aktiveret. Du kan nu logge ind.';
        }else{
        echo $aktivering;   
        }
    }else{
        functions('errorTjek');
        echo $error = error('getError');
    }
}else{
    functions('errorTjek');
    echo $error = error('logged_in');
}
?>
Avatar billede DePlex Nybegynder
20. april 2011 - 18:00 #2
Jeg smider lige 100 points oven i hatten, da der er en del mere der skal kigges igennem nu hvor jeg fandt ud af fejlen er større.
Avatar billede DePlex Nybegynder
21. april 2011 - 15:41 #3
'' rundt om true hjalp.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester