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";