Php AES_加密MySQL更新查询
我希望你能帮忙。我试图在我的更新查询中使用AES_加密,但无法使其工作 我试图加密first_name变量,但当我运行查询时,它拒绝更新字段。当我从更新查询中删除AES_ENCRYPT方法时,它工作得非常好 我当前的代码如下所示:Php AES_加密MySQL更新查询,php,mysql,encryption,aes,Php,Mysql,Encryption,Aes,我希望你能帮忙。我试图在我的更新查询中使用AES_加密,但无法使其工作 我试图加密first_name变量,但当我运行查询时,它拒绝更新字段。当我从更新查询中删除AES_ENCRYPT方法时,它工作得非常好 我当前的代码如下所示: if(!define('SALT')) define('SALT','4a7s3n3j93n98lk'); $sql = "UPDATE cases SET first_name=?, last_name=? WHERE case
if(!define('SALT')) define('SALT','4a7s3n3j93n98lk');
$sql = "UPDATE cases
SET first_name=?,
last_name=?
WHERE cases_id=?";
$query = $db->prepare($sql);
$query->execute(array(
AES_ENCRYPT('$first_name','".SALT."'),
$last_name,
$id));
$db = null;
我通过以下修订成功解决了AES_ENCRYPT update查询问题:
$encrypt_key = '4a7s3n3j93n98lk';
$statement = $db->prepare("UPDATE cases SET
first_name = AES_ENCRYPT(:first_name, '$encrypt_key'),
last_name = AES_ENCRYPT(:last_name, '$encrypt_key'),
WHERE cases_id = :id");
$statement->bindParam(':id', $id, PDO::PARAM_INT);
$statement->bindParam(':first_name', $first_name, PDO::PARAM_STR);
$statement->bindParam(':last_name', $last_name, PDO::PARAM_STR);
$statement->execute();
$db = null;
AES_ENCRYPT不是php函数。
if(!define('SALT'))
应该是if(!defined('SALT'))
根据from defined()-检查给定的命名常量是否存在。对于Jon使用错误的术语,我深表歉意。该问题已被编辑。感谢输入Funk 49,我将更正定义的命名常量,看看这是否有帮助。