【发布时间】:2010-06-07 05:04:31
【问题描述】:
我有一个简单的 html 表单,它使用 POST 功能提交信息。但是当信息包含西里尔字符时,在 MySql 的表格中,会变成 ѰѷѰѷѰѷѰ 符号而不是文本。该表位于 utf-8_general_ci 上,该站点采用 UTF-8 编码。我用
可视化这张表的结果$query = "
SELECT ".$db->nameQuote('ingredients')."
FROM ".$db->nameQuote('other')."
ORDER by id DESC
";
$db->setQuery($query);
$ingredients = $db->loadResult();
我不明白如何告诉表单正确发送西里尔字符。或者根本问题出在哪里?如何正确获取此字符?或者如何正确发送?
------------------编辑-----------
我不明白该放在哪里
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET NAMES utf8");
所以我在这里粘贴我的代码。首先是简单的形式:
<form action="insert.php" method="post" onsubmit="return checkForm(this)" target="_top">
<table>
<tr>
<td colspan="2">
<ul>
<li> Добавете необходимите за рецептата съставки</li>
<li> Моля попълнете всички полета коректно</li>
<li> Полетата маркирани с (*) са задължителни</li>
</ul>
</td>
</tr>
<tr>
<td>
Количество (порции)*:
</td>
<td>
<input type="text" name="quantity" />
</td>
</tr>
<tr>
<td>
Съставки*:
</td>
<td>
<input type="text" name="ingredients" />
</td>
</tr>
<tr>
<td>
Време за приготвяне*:
</td>
<td>
<input type="text" name="timing" /><br />
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Напред" class="button validate" />
</td>
</tr>
</table>
</form>
以及我的 insert.php 文件中的获取语法:
$query = "
SELECT ".$db->nameQuote('quantity')."
FROM ".$db->nameQuote('other')."
ORDER by id DESC
";
$db->setQuery($query);
$quantity = $db->loadResult();
$query = "
SELECT ".$db->nameQuote('ingredients')."
FROM ".$db->nameQuote('other')."
ORDER by id DESC
";
$db->setQuery($query);
$ingredients = $db->loadResult();
$query = "
SELECT ".$db->nameQuote('timing')."
FROM ".$db->nameQuote('other')."
ORDER by id DESC
";
$db->setQuery($query);
$timing = $db->loadResult();
【问题讨论】:
-
你的查询不能只是
$query = "SELECT quantity, ingredients, timing FROM other ORDER by id DESC";吗? -
$db->setQuery('SET CHARACTER SET utf8; SET NAMES utf8;'); $db->loadResult(); (如果这不起作用,请单独发出命令)
标签: php mysql character-encoding