mysql_real_escape_string () ожидает, что параметр 1 будет строкой - PullRequest
0 голосов
/ 13 января 2012
require("includes/connect.php");

            $result = mysql_query("SELECT * FROM entries", $link);

            while ($row = mysql_fetch_array($result)) {
                htmlentities($row['quotes']);
            }

Я пытаюсь отобразить данные в базе данных, но продолжаю получать:

Warning: mysql_real_escape_string() expects parameter 1 to be string

Что-то не так в приведенном выше коде, который вызывает проблему? Я новичок в PHP и пытаюсь понять, что происходит и почему он это делает.

connect.php

$link = mysql_connect("localhost", "root", "");

    if (!$link) {
        die("Could not connect to the db");
    }

    mysql_select_db("ENTRIES",  $link);

(я работаю над этим локально, так что пользователь / пароль сейчас действительно не важен)

Ответы [ 2 ]

1 голос
/ 13 января 2012

Я не вижу смысла в экранировании вышеприведенного запроса, но вы можете сделать это так:

 $result = mysql_query(mysql_real_escape_string("SELECT * FROM entries"), $link);

Вы должны прочитать документацию: mysql_real_escape_string ()

0 голосов
/ 13 января 2012

Как объясняет ошибка, mysql_real_escape_string() принимает строку в качестве параметра. В своем коде, который вы разместили как комментарий, вы передаете $link, который не является строкой, это соединение с базой данных.

Как сказал @kristen, решение должно заключаться в том, чтобы обернуть ваше SQL-выражение следующим образом:

$result = mysql_query(mysql_real_escape_string("SELECT * FROM entries"), $link);

Если после этого вы все еще получаете сообщение об ошибке, вы должны использовать эту функцию в другом месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...