我有一个简单的HTML表单,用POST函数提交信息。但是当信息包含一个西里尔文字符时,在MySql中的表格中就会变成ааааза符号而不是文本。该表位于utf-8_general_ci上,该网站使用UTF-8编码。我想象这个表的结果与POST与SQL函数编码问题的简单HTML表单?
$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 =“选择数量,成分,时间从其他订单编号DESC”;'? – 2010-06-06 20:35:27
$ db-> setQuery('SET CHARACTER SET utf8; SET NAMES utf8;'); $ db-> loadResult(); (如果这不起作用,请分别发出命令) – Robus 2010-06-07 17:25:59