i eine grundlegende cms zu machen versuchen, nach dem Tutorial hier: Cms TutMysqli vs msql und PDO Verbindung
In Article.php, er nutzt die mysql_escape_string ($ Reihenfolge) mit einer PDO-Verbindung, die jetzt entfernt Von PHP 7 wechselte ich zu mysqli_escape_string ($ order) und proceedes irgendwie aber gibt die Fehler mit den 2 Parametern. Ich bin neu zu PHP, aber als ich suchte, denke ich, dass das Problem mit der PDO-Verbindung ist, kann ich nicht die Verbindung als zweites Argument setzen. Irgendwelche Gedanken und Ideen? Danke im Voraus.
Hier ist der Code:
public static function getList($numRows=1000000, $order="publicationDate DESC") {
$conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD);
$sql = "SELECT SQL_CALC_FOUND_ROWS *, UNIX_TIMESTAMP(publicationDate) AS publicationDate FROM articles
ORDER BY " . mysqli_escape_string($order) . " LIMIT :numRows";
$st = $conn->prepare($sql);
$st->bindValue(":numRows", $numRows, PDO::PARAM_INT);
$st->execute();
$list = array();
while ($row = $st->fetch()) {
$article = new Article($row);
$list[] = $article;
}
// Now get the total number of articles that matched the criteria
$sql = "SELECT FOUND_ROWS() AS totalRows";
$totalRows = $conn->query($sql)->fetch();
$conn = null;
return (array ("results" => $list, "totalRows" => $totalRows[0]));
}
Nach dem Code zu aktualisieren, mit einer Mysqli Verbindung zu schaffen, in Browser gibt es, diese Fehler: mysqli_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Ein solcher Host ist nicht bekannt.
und in Log-Server-Fehler auch dies: auf eine Elementfunktion real_escape_string Anruf() auf boolean
Der Update-Code ist:
public static function getList($numRows=1000000, $order="publicationDate DESC") {
$conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD);
$link = mysqli_connect(DB_USERNAME, DB_PASSWORD, DB_DSN);
$sql = "SELECT SQL_CALC_FOUND_ROWS *, UNIX_TIMESTAMP(publicationDate) AS publicationDate FROM articles
ORDER BY " . $link->real_escape_string($order) . " LIMIT :numRows";
$st = $conn->prepare($sql);
$st->bindValue(":numRows", $numRows, PDO::PARAM_INT);
$st->execute();
$list = array();
while ($row = $st->fetch()) {
$article = new Article($row);
$list[] = $article;
}
// Now get the total number of articles that matched the criteria
$sql = "SELECT FOUND_ROWS() AS totalRows";
$totalRows = $conn->query($sql)->fetch();
$conn = null;
return (array ("results" => $list, "totalRows" => $totalRows[0]));
}
Sie sagen, Sie erhalten Fehler, aber nicht, was die Fehler sind, noch bestätigen Sie genau, welche Aussage fehlerhaft ist. Das sind so ziemlich die wichtigsten Informationen zu Ihrem Problem: -/ –
Der Fehler ist über die sqli_real_escape_string(), und ist über die 2 Parameter, die zu nehmen ist. –
* Beschreibe * den Fehler nicht. Aktualisieren Sie Ihre Frage und fügen Sie den genauen Text hinzu. Keine Umschreibung davon. Der genaue Text. –