mysqli bind_result / sorun getir

2 Cevap php

Php 5 mysqli nesneler ile hazırlanmış deyimleri kullanmayı öğrenme yaşıyorum ve ben çalışmak için bağlayıcı temel sonuç alma konusunda sorun yaşıyorum. Ben php.net den örnek kod takip ediyorum ama bir şey çalışmıyor, bağlı sonuçlar her zaman NULL. İşte ne var

/ * Deyimi hazırlamak * /

if ($stmt = $DB->mysqli->prepare("SELECT `alias`,`nameFirst`,`nameLast`,`email`,`access_level` FROM `users` WHERE `alias` LIKE CONCAT('%',?,'%') LIMIT 20;")) {

                   $stmt->bind_param('s',$alias);

                    $stmt->execute();

                    /* bind variables to prepared statement */
                    $stmt->bind_result($col1, $col2);

                    /* fetch values */
                    while ($stmt->fetch()) {
                    echo "COL 1=".$col1." | COL2=".$col2."<br />";
                    }

                    /* close statement */
                    $stmt->close();
                } else echo "NO DICE";

2 Cevap

Pardon, ben sağ php dokümanlar üzerinde not cevapsız:

Note that all columns must be bound after mysqli_stmt_execute() and prior to calling mysqli_stmt_fetch().

Burada cevabı bulundu:

Prepared Statement not returning anything

Yoksa, sizin gibi bir dizideki tüm alanları can $cols[]. Yazdırma sırasında bunu echo kullanmak $cols[0].$cols[1] edebilirsiniz.