je suis en train de faire un CMS de base, suivant le tutoriel ici: Cms Tutmysqli vs msql et connexion AOP
En Article.php, il utilise le mysql_escape_string (ordre de $) avec une connexion PDO, qui est maintenant supprimé à partir de PHP 7, j'ai changé pour mysqli_escape_string ($ order) et continue en quelque sorte mais donne les erreurs avec les 2 paramètres. Je suis nouveau sur php, mais comme je l'ai cherché, je pense que le problème est avec la connexion PDO, je ne peux pas mettre la connexion comme deuxième argument. Des pensées et des idées? Merci d'avance.
Voici le 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]));
}
Après la mise à jour du code, avec la création d'une connexion mysqli, dans le navigateur il y a, cette erreur: mysqli_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo a échoué: Aucun tel hôte n'est connu.
et dans le journal d'erreur de serveur également ceci: Appel à une fonction membre real_escape_string() sur booléenne
Le code de mise à jour est:
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]));
}
Vous dites que vous obtenez des erreurs, mais pas quelles sont les erreurs, ni de confirmer exactement quelle instruction est erronée. C'est à peu près l'information la plus importante concernant votre problème: -/ –
Les erreurs concernent la sqli_real_escape_string(), et concernent les 2 paramètres à prendre. –
Ne pas * décrire * l'erreur. Mettez à jour votre question et incluez le texte exact. Pas une paraphrase de celui-ci. Le texte exact –