2 Stimmen

Ergebnisse in ein php-Array einbinden

Ich versuche, den folgenden Code zu erhalten Ergebnisse aus Abfrage und zeigen Sie es in der tes.php Seite.

db.inc.php

<?php
function db_connect()
{
    $handle=new mysqli('localhost','rekandoa','rekandoa','rekandoa');
 if (!$handle)
{
       return false;
   }
return $handle;
}

function get_member()
{
    $handle=db_connect();
$sql="Select email,nama,alamat,kota,propinsi from users where email=?";
    $stmt=$handle->prepare($sql);
  $mail='yonghan79@gmail.com';
    $stmt->bind_param("s",$mail); 
 $stmt->execute();
  $stmt->bind_result($email,$nama,$alamat,$kota,$propinsi);
  $result=$stmt->fetch();
    return $result;
}
?>

tes.php

<?php
error_reporting(E_ALL & ~E_NOTICE);
include('db.inc.php');
$w=get_member();
echo $w['member_id'];
echo '<br>';
echo $w['email'];
echo '<br>';
echo $w['status'];
echo '<br>';
?>

Ich habe keine Fehlermeldung erhalten, aber die Ergebnisse werden nicht angezeigt, es ist nur eine leere Seite.

Was habe ich falsch gemacht?

5voto

soulmerge Punkte 70900
$stmt->bind_result($email,$nama,$alamat,$kota,$propinsi);

Die obige Zeile sorgt dafür, dass die Ergebnisse in den von Ihnen angegebenen Variablen gespeichert werden. Die fetch() function gibt zurück. TRUE o FALSE - ob die Abfrage erfolgreich war, nicht das tatsächliche Ergebnis. Sie bräuchten etwas wie

return array(
    'email'    => $email,
    'nama'     => $nama,
    'alamat'   => $alamat,
    'kota'     => $kota,
    'propinsi' => $propinsi);

1voto

Martijn Laarman Punkte 13386

Fetch() selbst gibt kein Array zurück, sondern einen booleschen Wert, der angibt, ob eine Zeile gefunden wurde. Sie können also tun:

while($stmt->fetch()) {
     //$email,$nama,$alamat,$kota,$propinsi are now filled
}

Bindung von Werten in ein Array dynamisch (im Gegensatz zu soulmerge Lösung) dauert ein wenig mehr Handwerk. Ich habe eine Datenbank-Klasse die genau das tut. Es fungiert als Wrapper um mysqli prepared statements, um Ergebnisse als Objekte zurückzugeben, wobei die select-Spalten als Eigenschaften des Objekts fungieren. Wenn Sie den Cast auf Objekt in der Klasse herausnehmen, werden Arrays zurückgegeben, wie Sie es wünschen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X