0

我有以下代码行:

mysql_query("SELECT name FROM details WHERE md5(name) = '".md5($input_name)."'");

但是,当我将查询更改为以下内容时,此查询工作得很好:

mysql_query("SELECT name FROM details WHERE salt(name) = '".salt($input_name)."'");

查询似乎不起作用。

盐函数如下:

function salt ($name) {


global $salt;



return $salt.$name;

}

其中 $salt 是一个全局变量(一个 md5 哈希)

为什么第二个查询不起作用?

4

3 回答 3

1

MySQL 无法访问您在 PHP 中定义的函数。您只能使用 MySQL 在 MySQL 查询中定义的函数,或您用 SQL 编写的函数。您将不得不重新考虑您在做什么,并以一种不需要 MySQL 使用 PHP 函数的方式来表达它。

于 2012-06-11T07:29:42.237 回答
0

PHP 中的函数和 MySQL 中的函数是两个不同的东西。

发送 MySQL 查询时,MySQL 将负责解析您发送的字符串。而且 MySQL 不知道您编写的任何 PHP 代码 - 反之亦然。

于 2012-06-11T07:31:06.297 回答
0

这不是很容易做到的:

$saltinput = salt($input_name)
mysql_query("SELECT name FROM details WHERE salt(name) = '$salitinput'");
于 2012-06-11T07:44:18.690 回答