MySQL数据库中测试编码不提交到表的应用
我从中获得了下面的应用程序,以便在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; 并输入了连接到我的数据库的详细信息,我确信这些信息是正确的。但是,由于某些原因,没有向我
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;