首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP+MYSQL编码,utf8_polish_ci

PHP+MYSQL编码,utf8_polish_ci
EN

Stack Overflow用户
提问于 2012-08-27 04:15:42
回答 1查看 2K关注 0票数 0

你好,我有在我的脚本编码的问题。我的connect函数如下所示:

代码语言:javascript
复制
function connect()
{
    $conn = mysql_connect('192.168.1.127', 'mason_frik', 'difficultpassword');
    if (!$conn) 
    {
        die('Nie można się połaczyć!');
    }
    mysql_query("SET NAMES 'utf8'; COLLATE='utf8_polish_ci';");
    mysql_query("SET character_set_client = 'utf8'");
    mysql_query("SET character_set_results = 'utf8'");
    mysql_query("SET character_set_connection = 'utf8'");
    mysql_select_db('mason_konkursy');
}

在我的数据库中,我到处都在使用utf8_polish_ci。在我的脚本中,我从其他页面获取了一些东西,我需要在我的db中搜索它,如下所示://此函数正在解析其他页面并获取SPAN的innertext。

代码语言:javascript
复制
$question = GetSpanData($FirstQuestion, "dnn_ctr1975_ViewContestsContestNew_dc_question_lblQuestion");



$wyn = mysql_query('SELECT * FROM questions WHERE question="'.$question.'"'); 
$wynik = mysql_fetch_array($wyn, MYSQL_ASSOC);

结果为bool(false)。当我将查询复制到phpmyadmin并粘贴到sql时,它可以正常工作,但从我的脚本中它不起作用。你能帮助我吗?

EN

回答 1

Stack Overflow用户

发布于 2012-08-27 04:37:49

这一行是错误的:

代码语言:javascript
复制
mysql_query("SET NAMES 'utf8'; COLLATE='utf8_polish_ci';");

correct syntax为:

代码语言:javascript
复制
SET NAMES 'charset_name' COLLATE 'collation_name'

在您的示例中,代码将为:

代码语言:javascript
复制
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci';");

阅读eggyal发布的第一条评论: mysql_*函数不应该再使用了,它们已被弃用,并将在未来的版本中删除。

您可能在这行代码中遗漏了对mysql_real_escape_string的调用(我无法确定,这取决于函数GetSpanData的确切作用):

代码语言:javascript
复制
mysql_query('SELECT * FROM questions WHERE question="'.$question.'"');

要正确转义数据,必须使用mysql_real_escape_string函数:

代码语言:javascript
复制
mysql_query('SELECT * FROM questions WHERE question="'.mysql_real_escape_string($question).'"');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12133548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档