如何在php中将希伯来语值插入mysql数据库
我试图在mysql数据库中插入一个希伯来语值,而不是希伯来语值 ××דהדכ××××” 默认情况下,表的排序规则是拉丁1_瑞典_ci,我也尝试更改为utf-8_general_ci、hebrew_bin、hebrew_general_ci,但结果仍然相同 在我的代码中,我当然使用meta标记来配置字符集:如何在php中将希伯来语值插入mysql数据库,php,mysql,collation,Php,Mysql,Collation,我试图在mysql数据库中插入一个希伯来语值,而不是希伯来语值 ××דהדכ××××” 默认情况下,表的排序规则是拉丁1_瑞典_ci,我也尝试更改为utf-8_general_ci、hebrew_bin、hebrew_general_ci,但结果仍然相同 在我的代码中,我当然使用meta标记来配置字符集: <meta charset="UTF-8"> 我正在phpmyadmin中查看结果。检查排序规则\u连接: show variables like '%collation
<meta charset="UTF-8">
我正在phpmyadmin中查看结果。检查排序规则\u连接:
show variables like '%collation%'
{"mysql:host=$host;dbname=$db;charset=utf8"}
您应该确保:
然后,您应该能够在phpadmin中正确查看希伯来语或任何其他语言。我已经解决了我的希伯来语问题。这是一个数据库和表行/字段编码问题。这是我使用的解决方案。我从另一个答案获得了帮助,下面给出了链接,以防任何人需要
utf8\u general\u ci
utf8\u general\u ci
header('Content-Type: text/html; charset=utf-8');
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
如果您正在使用PDO,请将
$conn->query("SET NAMES 'utf8'");
设置字符集以实现解决方案 在创建数据库时
CREATE DATABASE db_name
CHARACTER SET utf8
DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci
DEFAULT COLLATE utf8_general_ci
;
或者如果数据库已经创建
CREATE TABLE table_name(
...
)
DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci;
或在编写查询时
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn);
$re = mysql_query('SHOW VARIABLES LIKE "%character_set%";')or die(mysql_error());
while ($r = mysql_fetch_assoc($re)) {var_dump ($r); echo "<br />";}
mysql\u查询(“SET character\u SET\u results='utf8',character\u SET\u client='utf8',character\u SET\u connection='utf8',character\u SET\u database='utf8',character\u SET\u server='utf8',$conn);
$re=mysql\u query('SHOW VARIABLES,如“%character\u set%”)或die(mysql\u error());
而($r=mysql_fetch_assoc($re)){var_dump($r);echo“
”;}
我想说,为了确保值能够很好地传递到数据库,我会在插入数据库并打印值之前添加一个模板,例如:
die($_POST['thevalue']);
//insert to database.
//...
如果进展顺利,那么问题就出在数据库方面,在数据库方面,我会尝试使用这种排序规则
|希伯来语| ISO 8859-8希伯来语|希伯来语|通用| ci | 1|
按照你的建议
但如果在php端失败,原因可能是服务器不支持希伯来语,请确保在html输出文档上使用正确的元标记
...
<meta charset="ISO 8859-8">
...
。。。
...
让我们知道它是如何进行的,祝你好运:)为了将来的使用,如果你有这个问题,并且你使用的是PDO而不是mysqli,你需要这样做:
祝你好运。最终帮助我的是将字符集添加到连接:
show variables like '%collation%'
{"mysql:host=$host;dbname=$db;charset=utf8"}
我想我已经弄明白了:
这是我的密码:
$conn = mysqli_connect($dbserver,$dbuser,$dbpwd,$dbname);
if (mysqli_connect_errno()){
printf("Connection failed: %s\n" , mysqli_connect_errno());
exit();
}
printf("Initial character set: %s\n", mysqli_character_set_name($conn));
/* change character set to utf8 */
if (!mysqli_set_charset($conn, "hebrew")) {
printf("Error loading character set hebrew: %s\n", mysqli_error($conn));
exit();
} else {
printf("Current character set: %s\n", mysqli_character_set_name($conn));
}
试试mysql\u set\u字符集('utf8')在插入值之前。@davidkonrad得到相同的结果。这可能有助于尝试在不使用phpMyAdmin的情况下获取和显示数据,因为它还需要正确的编码设置。很抱歉,我不理解您的答案。您能添加一些详细信息吗?谢谢。您需要进行一些疑难解答,执行我从您的HP脚本(并显示结果)以确保所有排序规则设置都正确。这很有帮助。谢谢!Sardar Raj这是我的魔术:mysql_查询(“设置名称‘utf8’”))+1