MySQL数据库中测试编码不提交到表的应用

MySQL数据库中测试编码不提交到表的应用,mysql,utf-8,character-encoding,Mysql,Utf 8,Character Encoding,我从中获得了下面的应用程序,以便在MySQL数据库上测试字符编码。我已使用同一页上列出的查询创建了数据库,即: CREATE TABLE `texts` ( `id` INT(11) unsigned NOT NULL AUTO_INCREMENT, `content` TEXT, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 并输入了连接到我的数据库的详细信息,我确信这些信息是正确的。但是,由于某些原因,没有向我

我从中获得了下面的应用程序,以便在MySQL数据库上测试字符编码。我已使用同一页上列出的查询创建了数据库,即:

CREATE TABLE `texts` (
  `id` INT(11) unsigned NOT NULL AUTO_INCREMENT,
  `content` TEXT,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
并输入了连接到我的数据库的详细信息,我确信这些信息是正确的。但是,由于某些原因,没有向我的数据库提交任何内容,当我手动向数据库添加条目时,在“输出测试”下面出现以下错误:

注意:未定义的索引:/home/…/php/encoding_test.php中的文本 第56行

我想知道是否有人能发现问题所在

<?php

error_reporting(E_ALL);
ini_set('display_errors', true);

header('Content-Type: text/html; charset=utf-8');

$pdo = new PDO('mysql:dbname=encoding_test;host=localhost', 'user', 'pass',
               array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));

if (!empty($_POST['text'])) {
    $stmt = $pdo->prepare('INSERT INTO `texts` (`text`) VALUES (:text)');
    $stmt->execute(array('text' => $_POST['text']));
}

$results = $pdo->query('SELECT * FROM `texts`')->fetchAll(PDO::FETCH_ASSOC);

?>
<!DOCTYPE html>

<html>
<head>
    <title>UTF-8 encoding test</title>
</head>
<body>

<h1>Display test</h1>

<p>
A good day, World!<br>
Schönen Tag, Welt!<br>
Une bonne journée, tout le monde!<br>
يوم جيد، العالم<br>
좋은 일, 세계!<br>
Một ngày tốt lành, thế giới!<br>
こんにちは、世界!<br>
</p>

<h1>Submission test</h1>

<form action="" method="post" accept-charset="utf-8">
    <textarea name="text"></textarea>
    <input type="submit" value="Submit">
</form>

<?php if (!empty($_POST['text'])) : ?>
    <h2>Last received data</h2>
    <pre><?php echo htmlspecialchars($_POST['text'], ENT_NOQUOTES, 'UTF-8'); ?></pre>
<?php endif; ?>

<h1>Output test</h1>

<ul>
    <?php foreach ($results as $result) : ?>
        <li>
            <pre><?php echo htmlspecialchars($result['text'], ENT_NOQUOTES, 'UTF-8'); ?></pre>
        </li>
    <?php endforeach; ?>
</ul>

</body>
</html>

UTF-8编码测试
显示测试

一个好日子,世界
Schönen Tag,Welt
《世界报》的头条新闻
يوجد،㶊ع㶊م
좋은 일, 세계!
Một ngáy tốt lánh,thế 胃肠道ớ我
こんにちは、世界!

提交测试 最后收到的数据 输出测试
根据您的PHP代码,您可以使用表
text
,因为它包含名为
text
的列,但在您的模式中,该列具有名称
内容
因此,您需要使用上述查询将列
content
重命名为
text

ALTER TABLE `texts` CHANGE `content` `text` TEXT;