在MySQL查询中使用函数

时间:2012-06-11 07:18:06

标签: php mysql function md5

我有以下代码行:

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哈希)

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

PHP中的函数和MySQL中的函数是两个独立的东西。

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

答案 2 :(得分:0)

这不容易通过以下方式完成:

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