Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Sk8erPeter

    nagyúr

    válasz Joci93 #15866 üzenetére

    A $bd->prepare előtti részt is oszd meg légyszi, hogy hogyan csatlakozol az adatbázishoz (nyilván a felhasználónév-jelszó infót csillagozd ki, vagy valami), és hogyan inicializálod a $bd változót. Egyébként ne használj ilyen változóneveket, mint a $bd, mert nem lehet belőle tudni, hogy az micsoda. Egy változónév legyen beszédes. Olyanokat se használj, hogy $res3, $uzenet2, $uzenet3, mert ez így katyvasz (miért pont 2? Miért pont 3?). Bár remélem csak a demókódodban vannak ilyenek. Illetve elírások: reciever --> receiver, RECIEVED --> RECEIVED.
    Amúgy annyira gusztustalan ez a mysqli-s szintaktika (ezzel az $uzenet->bind_param('si', $uzenetszam, $zero); résszel), ha már ilyesmi, akkor PDO-val ezt sokkal szebben meg lehetne oldani, valami ilyesmi lenne ($idOfReceiver változó megfelelője a te kódodban az $uzenetszam):

    $idOfReceiver = 123123;
    $hasReceivedMessage = 0;

    $db = new PDO(
    "mysql:host=localhost;dbname=test",
    "root",
    "root",
    array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;',
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    )
    );

    $stmt = $db->prepare("SELECT COUNT(reciever) AS uzenet FROM uzenet WHERE reciever =:receiver AND RECIEVED =:received");
    $stmt->bindValue(':receiver', $idOfReceiver); // vagy bindParam
    $stmt->bindValue(':received', $hasReceivedMessage); // vagy bindParam
    $stmt->execute();
    /*
    // vagy egyben:
    $stmt->execute(array(
    ":receiver" => $idOfReceiver,
    ":received" => $hasReceivedMessage,
    ));
    */

    $numberOfMessages = $stmt->fetchColumn();

    echo 'Number of messages: ', $numberOfMessages;

Új hozzászólás Aktív témák