PHP MYSQL UTF8整理印地语问题

时间:2016-12-02 14:20:34

标签: php mysql encryption utf-8 md5

解释此问题与@deceze先生指定的完全重复内容有何不同 =================================
所谓的重复文章中提供的解决方案仅使用UTF-8,并且我已在下面指定的代码中使用。
我的问题专门谈到两件事:
1.整理:utf8_general_ci
2.方法:OOPS代替PDO
我在下面给出的代码已经实现了UTF-8,我已经提到它工作正常 我的问题是关于印地语的完美存储我不知道如何在OOPS方法中使用相同的整理来获取它。
=================================
使用Google API,我在数据库中以hindi语言插入了一些信息。 mysql中的列的数据类型为LONGTEXT,Collat​​ion为: utf8_general_ci

当我在PHP中插入前端的值时,数据存储如下: पà¥à¤°à¤¶à¥à¨à¥§

同时,我还通过md5将此印地文数据的加密值保存为: md5($ _ POST ['transliterateTextareaans'])

在节目页面上,我设置了如下头部信息:
<meta charset="UTF-8">

并且准确显示印地文中的数据。 现在问题出现了。
我想再次将此数据转换为md5值并与数据库加密值进行交叉检查,但它们不匹配。 (考虑在hindi或MCQ中存储用户名和密码的情况,其中正确答案以加密形式存储,并在检查候选答案时需要进行比较)。
这是我的代码:

if(md5($_POST['ans']) == $_POST['hids'])
{
    //correct
}
else
{
    //wrong
}


我已经通过谷歌,发现我应该设置选择查询的排序规则,但我不知道如何做到这一点。这是我的选择代码:

if($ques=$mysqli->prepare("SELECT * FROM mytab WHERE sno=?"))
{
    $ques->bind_param('i', intval($_SESSION['qlist']));
    if($ques->execute())
    {
        $res=$ques->get_result();
        $row=$res->fetch_assoc();
    }
}



代码现已更新如下:

if(!$conn->set_charset("utf8")) // SETS THE CHARACTERSET
    echo $conn->error;
if(!$conn)
{
    die("Connection failure: ". $conn->connect_error);
}
if($sql=$conn->prepare("INSERT INTO q_bank VALUES (?, ?, ?, ?, ?, ?, ?)"))
$sql->bind_param('sssssss', $p1, $p2, $p3, $p4, $p5, $p6, $p7);
$p1=........... //upto $p5
$p6=md5($_POST['txtbox']);


同样,现在选择代码来获取数据:

if(!$mysqli->set_charset("utf8")) //SETS THE CHARACTERSET FOR FETCHING
    echo $mysqli->error;
$ques->bind_param('i', intval($_SESSION['qlist'][$_SESSION['qnum']]));

现在,没有任何数字的数据比较好 其中包含任何数字的数据无法进行比较。

注意:此处的数据是指MCQ中的选项,需要与加密的正确答案进行比较。

0 个答案:

没有答案