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 ハッシュ) です。

2 番目のクエリが機能しないのはなぜですか?

4

3 に答える 3

1

MySQLは、PHPで定義した関数にアクセスできません。MySQLがMySQLクエリで定義する関数、またはSQLで記述した関数のみを使用できます。MySQLがPHP関数を使用する必要がない方法で、実行していることを再考し、表現する必要があります。

于 2012-06-11T07:29:42.237 に答える
0

PHP の関数と MySQL の関数は、2 つの別個のものです。

MySQL クエリを送信する場合、MySQL は送信する文字列を解析する責任があります。また、MySQL は、作成した PHP コードを認識しません。逆もまた同様です。

于 2012-06-11T07:31:06.297 に答える