Ich versuche, eine Liste von Daten, die ich in meiner Datenbank in einem Array gespeichert habe. Ich habe die folgende Funktion versucht, aber ich bekomme nur "Array" zurück. Ich bin mir nicht sicher, was ich falsch mache oder ob es noch eine andere Möglichkeit gibt, die Daten abzurufen.Speichern Sie Daten aus der Datenbank in einem Array
Antwort
Während Sie die
PDO statements
verwenden, können Sie die Prozedur verfolgen, bei der PDO stark genug ist, um SQL-Injektionen zu vermeiden. Aber Sie haben den Prozess in Ihrem Code nicht verfolgt. Die Verwendung von Bindeparametern wird empfohlen.
Hinweis: Ihr Code funktioniert gut, außer der Fetch-Anweisung. Sie müssen fetchAll();
, so dass es in der Lage ist, alle Daten aus der resultierenden Abfrage zu erfassen, und Sie können es drucken.
Wenn dies der Fall ist, müssen Sie fetchAll();
verwenden, um mehrere Zeilen der Ausgabe aus dem DB abzurufen, oder für das Abrufen der einzelnen Zeile der Ausgabe wird Ihr Code gut aussehen.
Lösung One:
Sie binden Parameter in der Funktion verwenden können, so dass es SQL Injections vermeidet.
functions.php
function getdate($id)
{
$select = $conn->prepare("SELECT `date` FROM `dates` WHERE user_id= :id ");
$select->bindValue(':id', $id, PDO::PARAM_INT);
$select->execute();
$result = $select->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
Andere Datei können Sie die Funktion Aufruf wie folgt erhalten.
$result = getdate(3);
Und Sie müssen
print_r()
die$result
. So wird es in derarray()
Struktur resultieren.
Einige weitere Erläuterungen zu den Abrufanweisungen in PDO.
PDO hat einige extrem handliche Methoden das Abfrageergebnis in verschiedenen Formaten zurückzukehren:
fetch()
- ein Allzweck-ähnliche holen Methode mysql_fetch_array().fetchAll()
- um alle Zeilen ohne While-Schleife zu erhalten.- - um einen einzelnen Skalarwert zu erhalten, ohne zuerst das Array zu erhalten.
Beispiel:
$stmt = $pdo->prepare("SELECT id,name FROM songs WHERE dt=curdate()");
$stmt->execute();
$data = $stmt->fetchAll();
Jetzt haben wir alle Songs in der $ data-Array und wir können die Seite desing wie wir wollen.
<table>
<?php foreach ($data as $row): ?>
<tr>
<td>
<a href="songs.php?<?=$row['id']?>">
<?=htmlspecialchars($row['name'])?>
</a>
</td>
</tr>
<?php endforeach ?>
</table>
Wenn Sie mehr als eine Zeile erwarten, sollte es "fetchAll" sein. Wenn Sie nicht alles brauchen, brauchen Sie nur die Spalten, die Sie brauchen.
Dieses von der PHP PDO Dokumentation für fetchAll geändert, ich habe Ihre Benutzer-ID ist eine ganze Zahl angenommen ...
$sth = $dbh->prepare("SELECT date FROM dates WHERE user_id= :userid ");
$sth->bindValue(':userid', $id, PDO::PARAM_INT);
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
print_r($result);
Die print_r Sie zeigen, was das Array dann Zugriff Sie wie so kann aussieht es, wie Nogad sagt.
- 1. Datenbank-Design: Speichern Sie Daten aus Papierformularen in der Datenbank
- 2. Speichern Sie die Daten in der Datenbank
- 3. So speichern Sie Daten in der Datenbank
- 4. Speichern Sie Daten (Strings) in der Datenbank
- 5. Speichern von Array-Daten aus Formularen in die Datenbank
- 6. Daten aus Datagrid in Datenbank speichern
- 7. Wie Sie die Array-Daten in MySQL-Datenbank speichern
- 8. speichern Daten in Datenbank mit einem multiuploader
- 9. Speichern von untergeordneten Elementen der Firebase-Datenbank in einem Array
- 10. Speichern von JSON-Daten in einem Array
- 11. So speichern Sie mehrere Daten in einem Array
- 12. PHP Speichern Array in der Datenbank und Miss Daten
- 13. Wie Sie Daten in der Datenbank in HTML5 speichern
- 14. Wie speichern Array-Elementnamen in der Datenbank?
- 15. Speichern Sie ein Array von Elementen in der Datenbank (Laravel)
- 16. Wie Sie Daten in einem Array in Mongoose speichern?
- 17. Speichern Array in Mysql-Datenbank
- 18. Speichern Sie die Daten in der Datenbank über PHP-Formular
- 19. Firebase - Speichern von Daten in der Datenbank
- 20. So erhalten Sie String-Daten einer Spalte als Array-Daten aus der Datenbank
- 21. Probleme, Daten in der Datenbank zu speichern
- 22. Extrahieren von Daten aus JSON-Array und speichern sie in einem zweidimensionalen Array
- 23. speichern Sie unbegrenzte Daten in SQL-Datenbank
- 24. Speichern von Daten in der Firebase-Datenbank
- 25. So speichern Sie dynamische Daten in der Datenbank in Laravel
- 26. Speichern Sie Daten in Array von Eingang
- 27. PHP Speichern von Daten in einem Array und lesen sie
- 28. Wie Sie Daten in einem dynamischen Array von Strukturen speichern?
- 29. Abrufen von Daten aus einem Firebase-Array
- 30. So speichern Sie Daten in einem Array - JavaScript
was bedeutet, Sie erhalten ein Array ist nicht das, was Sie wollten? – e4c5
@ S.Al: Zuerst versuchen Sie die gleiche Abfrage mit einer gewünschten $ id in der phpmyadmin oder Terminal, und sehen, ob es sich um einige Zeilen oder nicht ergibt ... – JTheDev
echo $ array; Wenn $ array ist, wird ein Array 'Array' 'print_r ($ array);' zurückgeben, wenn der Inhalt angezeigt werden soll – nogad