Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL查询匹配项帮助_Php_Mysql - Fatal编程技术网

Php MySQL查询匹配项帮助

Php MySQL查询匹配项帮助,php,mysql,Php,Mysql,我在执行此查询时遇到了一些问题: $userId = mysql_real_escape_string( $_SESSION['user_id'] ); $userPassProvided = mysql_real_escape_string( $_POST['oldPassword'] ); $query = "SELECT user_id, AES_DECRYPT( user_pass, '".$db_aes_key."' ) AS user_pass "; $query .= "FROM

我在执行此查询时遇到了一些问题:

$userId = mysql_real_escape_string( $_SESSION['user_id'] );
$userPassProvided = mysql_real_escape_string( $_POST['oldPassword'] );
$query  = "SELECT user_id, AES_DECRYPT( user_pass, '".$db_aes_key."' ) AS user_pass ";
$query .= "FROM users_tbl WHERE MATCH( user_id, user_pass ) ";
$query .= "AGAINST( '".$userId."', '".$userPassProvided."' IN BOOLEAN MODE ) LIMIT 1";
$result = mysql_query( $query, $mysql_db );
我想做的是查询users\u tbl以获得其中user\u id和user\u pass分别与$userId和$userPassProvided相同的记录。有人能告诉我我的问题出在哪里吗

谢谢。:)

匹配()和()的工作方式与您期望的不一样。它所做的是尝试将country()中的单个字符串与match()中提供的每一列进行匹配,而不是将value1与column1进行比较,将value2与column2进行比较


您是否尝试过
…其中user_id=“$userId.”和user_pass=“$userPassProvided”'限制1

以下功能等同于您似乎想要做的。(请阅读下面的“然而……”

…但是MySQL必须对数据库中的每个编码密码进行解密。这将在计算上非常昂贵,并且会阻止使用任何SQL索引

P>可选地,您可以考虑加密所提供的密码,并将其与存储在数据库中的密码相匹配。可能是这样(注:未经测试):

$query  = "SELECT user_id, AES_DECRYPT( user_pass, '".$db_aes_key."' ) AS user_pass ";
$query .= "FROM users_tbl ";
$query .= "WHERE user_id = '".$userId."' ";
$query .= "  AND AES_DECRYPT(user_pass, '".$db_aes_key."' ) = '".$userPassProvided."' ";
$query .= "LIMIT 1";
$query  = "SELECT user_id, AES_DECRYPT( user_pass, '".$db_aes_key."' ) AS user_pass ";
$query .= "FROM users_tbl ";
$query .= "WHERE user_id = '".$userId."' ";
$query .= "  AND user_pass = AES_ENCRYPT('".$userPassProvided."', '".$db_aes_key."' ) ";
$query .= "LIMIT 1";