php - 从 php md5 字符串检查 MySql 中的字段

标签 php mysql md5 compare

我正在尝试通过 md5 函数从我的 php 页面验证 mysql 上的一对数据列。
我用 php md5 函数加密了字符串 "helloworld" 并试图将它与 MYSQL MD5 函数进行比较,但它不起作用。
我这样做是因为在数据库中有一对字符串 "hello""world" 需要与我的 php 字符串进行比较,所以:

<?php
$str_a = "hello";
$str_b = "world";
$str_encrypted = md5 ($str_a.$str_b);

// note "first_col" is "hello" and "second_col" is "world"
$sql = "UPDATE `my_table` SET `checked_col` = '1' WHERE MD5(CONCAT(first_col,second_col)) = '$str_encrypted' LIMIT 1;";
$res = mysql_query ($sql) or die (mysql_error());

($res) ? print "true" : print "false";
?>

此代码返回 false,并且数据库不UPDATE checked column 列,但不返回 mysql_error 问题。

PHP 的md5 能否生成与MYSQL 不同的MD5

一个 friend 写的类似的代码在同一个服务器上工作,但我没有太多经验可以看出区别在哪里

谁能告诉我哪里错了?
谢谢!

最佳答案

我不会混搭 MD5 函数。将任何 md5 函数视为单行道可能更简单。所以修改为:

$str_concat = $str_a.$str_b;

// note "first_col" is "hello" and "second_col" is "world"
$sql = "UPDATE `my_table` SET `checked_col` = '1' WHERE
     MD5(CONCAT(first_col,second_col)) = MD5('$str_concat') LIMIT 1;";

或者为了简单起见,让 sql 完全匹配。

// Skip the php concatenation.

// note "first_col" is "hello" and "second_col" is "world"
$sql = "UPDATE `my_table` SET `checked_col` = '1' WHERE 
    MD5(CONCAT(first_col,second_col)) = MD5(CONCAT('$str_a','$str_b')) LIMIT 1;";

关于php - 从 php md5 字符串检查 MySql 中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1764733/

相关文章:

java - 在 Java 中获取 FTP 文件的 MD5 校验和

php - MySQL 使用 ORDER BY 连接表会产生意想不到的结果

php - 新的 mySQL 查询或页面之间的 POST 信息?

php - 在 php 中将项目插入 mysql

php - 3 表连接并在其中添加

PHP 下拉框无法发布

php - 开放层 : remove multiple popups

mysql - 如何将数据库转储到远程服务器?

c - 如何在 UDP ECHO SERVER 文件和 UDP ECHO CLIENT 文件上实现 MD5?

java - Matlab-Java MD5 给出错误的哈希值