将希伯来语数据插入mysql php

时间:2013-12-01 21:12:43

标签: php mysql hebrew

我面临将从我的php网页插入希伯来语数据到mysql数据库的问题。 我对该表的排序规则是utf8_general_ci。 这是php脚本

<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<body style="background-color:#990000;"> 
<h5 align="center" style="font-family:tahoma;color:white;font-size:45px;"> Fill A Question! </h5>
<form align="center" method="post" action="addask.php">
Course Number: <input type="text" name="CourseNum"><br>
Ask: <input align="20px" type="text" name="ask"><br>
<input type="submit" value="Ask">
<?php 
header('Content-Type: text/html; charset=utf-8');
session_start();
$UserID = $_SESSION['UserID'];
$password = $_SESSION['password'];
if ((isset($_POST['CourseNum'])) && (isset($_POST['ask'])))
{
    $dbhost = 'localhost';
    $dbuser = 'root';
    $dbpass = 'password';
    $db = 'jonatandb';
    $conn = mysqli_connect($dbhost, $dbuser, $dbpass, $db);
    if (!$conn)
    {
        die ('Could not connect: ' . mysql_error());
    }
    mysqli_query("SET NAMES 'utf8'");
    $sql = "INSERT INTO Asks (UserID,Course_Num,Ask) VALUES ('$UserID','$_POST[CourseNum]','$_POST[ask]')";
    mysqli_query($conn,$sql);
    mysql_set_charset('utf8',$conn);
    mysqli_close($conn);
}
?>

当我尝试使用INSERT DATA直接从mysql命令行将希伯来语数据插入我的数据库时,它可以正常工作。

谢谢!


1 个答案:

答案 0 :(得分:1)

尝试更改此内容:

mysqli_query("SET NAMES 'utf-8'");
mysql_set_charset('utf-8',$conn);

有时一个或另一个有效。

修改

将表单更改为:

<form action="addask.php" action="post" accept-charset="UTF-8">

您还需要知道您的数据库是使用的格式是utf-8还是uft8。要查找,请将一些希伯来语插入到您的数据库中,然后尝试用它们提取它。

此外,您不需要UTF-8元数据和标题。我读过让meta减慢了web浏览器的速度,最好的解决办法就是在.htaccess中设置为UTF-8

http://www.w3.org/International/questions/qa-htaccess-charset.en

但我无法保证。