Utf8编码mysql查询不起作用

时间:2015-12-01 12:04:51

标签: php mysql utf-8

我遇到mysql查询问题。这是代码:

session_start ();
$db = mysql_connect('localhost', 'user', 'pw') or die(mysql_error());
mysql_select_db("wordpress_97") or die(mysql_error());

$names=mysql_query('set names utf8');

$tempnewpw = md5($tempnewpw);

$query = mysql_query("UPDATE wordpress_97.tUsers SET passwort = '$tempnewpw' WHERE tUsers.UserID = '$theuserid'") or die(mysql_error());
  

是的我知道我不应该使用mysql_函数,但它只是测试..

这就是错误:

  

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在第1行的'UPDATEÂwordpress_97.tUsersÂSetÂpasswort='pwinmd5''附近使用正确的语法

我无法摆脱这些......

数据库应该不是问题 - 其他查询在没有相同结构问题的情况下工作。

有什么想法吗?

提前致谢

4 个答案:

答案 0 :(得分:1)

尝试使用mysql_set_charset

session_start (); # not use for the DB query's 
$db = mysql_connect('localhost', 'user', 'pw') or die(mysql_error());

mysql_set_charset('utf8',$db); # add this

$db_selected = mysql_select_db("wordpress_97",$db);
//$names=mysql_query('set names utf8'); --- remove 
if (!$db_selected) { 
    die ('Database access error : ' . mysql_error());
}
else{
    $tempnewpw = md5($tempnewpw);

    $query = mysql_query("UPDATE wordpress_97.tUsers SET passwort = '$tempnewpw' WHERE tUsers.UserID = '$theuserid'") 
    or die(mysql_error());  
}

在html中

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

答案 1 :(得分:1)

删除该行并重新输入。
很可能那些是从复制粘贴中转移的字符。

关于您的第二个问题,$(function(){ $('#preview-button').click(function () { alert("Preview button was clicked"); }); }) d41d8cd98f00b204e9800998ecf8427emd5的{​​{1}}哈希值,是一个零长度的字符流。

在这一行

null

确保nothing存在并且有值,我还应该建议您使用不同的变量而不是覆盖它们。

答案 2 :(得分:0)

您可以尝试在html head标记中添加此行:

<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>

答案 3 :(得分:0)

不要使用Word进行编辑。它引入了有趣的字符,例如十六进制A0,通过一些转换变为CHARACTER SET(A-hat和一个空格),如文中所示。

我希望你没有任何重音字母;我怀疑他们被其他事情所破坏 - 例如在import os class DevelopmentConfig(object): SQLALCHEMY_DATABASE_URI = "postgresql://ubuntu:thinkful@localhost:5432/blogful" DEBUG = True SECRET_KEY = os.environ.get("BLOGFUL_SECRET_KEY", "") 中未能保持一致。