У меня разочаровывающий опыт в PHP, потому что я продолжаю возвращать свое поле MEDIUMTEXT в виде нестроковой строки. Когда я проверяю тип переменной, он говорит, что это строка, но на самом деле это массив, в основном массив символов, поэтому я делаю:
while ($row = mysql_fetch_assoc($records)) {
print_r($row["myText"]);
}
Который вместо того, чтобы распечатывать фактический текст, хранящийся там, такой как «здесь строка», он просто печатает 1. Это сбивает с толку, потому что я спрашиваю, что это тип данных, и он говорит строку ... Однако, если я делаю
$row["myText"][0]
Он вернет "ч". Я полностью заблудился о том, как я могу изменить это значение в строку, я имею в виду, что я предполагаю, что в php есть какая-то функция, но я не могу его найти. Я также понятия не имею, почему он говорит, что это не массив.
Есть идеи?
редактировать по запросу
MySQL запрос
select * from snippets
a print_r:
текст - это имя столбца MEDIUMTEXT в MySQL. Остальные не связаны
Array ( [index] => 1 [name] => a name [language] => english [text] => ) 1
edit2:
Весь код, выдавший эту ошибку:
$username = "root";
$password = "";
$hostname = "localhost";
$dbname = "TestSnippets";
$dbh = mysql_connect($hostname, $username, $password)
$selected = mysql_select_db("snippets",$dbh);
$records = mysql_query("select * from snippets");
while ($row = mysql_fetch_assoc($records)) {
echo print_r($row);
}
Это выдает ошибку каждый раз. Все остальные поля находятся в полном порядке. Однако не в поле MEDIUMTEXT.
Edit3:
Я попытался установить новый веб-сервер (Apache) и новую версию PHP, но у него все еще есть та же проблема. Интересно, что когда я вызываю php-cgi.exe, он возвращает данные с этой переменной, выводимой правильно. Я понятия не имею, что это может быть, единственное, что я могу установить другую версию MySQL. Я попробую это завтра и доложу.
edit4: Я решил это сам, имея в виду то, что мне здесь сказали. Смотрите мой ответ на мой собственный вопрос ниже.