试图进行一个简单的php登录并遇到一些问题,下面是错误:
用于操作“=”的非法排序规则(latin1_swedish_ci,隐式)和(utf8_general_ci,强制)的非法混合
这是一个查询
SELECT * FROM `accounts` WHERE `username` = :user AND `password` = MD5(CONCAT(MD5(`salt`), MD5(:pass)))其中:user和:pass是准备语句参数,包含用户名和密码。
我试图在查询中模拟md5(md5(salt).md5(pass))。
使用PDO。
发布于 2015-05-12 16:45:10
根据关于MySql的MD5手册,MD5函数的排序结果与系统或连接设置相同。
我猜想您的列排序规则设置与系统设置不同。
在创建连接时,可以指定排序规则设置。见打开PDO连接。
如果不进行测试,我想像这样的东西会有效的:
$dsn = 'mysql:host=localhost;dbname=testdb;charset=latin1_swedish_ci';
$username = 'username';
$password = 'password';
$options = array(
...
);
$dbh = new PDO($dsn, $username, $password, $options);https://stackoverflow.com/questions/30196794
复制相似问题