Php 使用mycrypt后SQL查询不起作用
我对PHP非常陌生,我正试图使用这段代码为数据库添加一个值。我试着回显所有的标签,所有的东西都工作了,只是它没有显示在我的数据库中。在我添加加密部分之前,所有这些都可以正常工作。我已经发现,如果我使用Php 使用mycrypt后SQL查询不起作用,php,Php,我对PHP非常陌生,我正试图使用这段代码为数据库添加一个值。我试着回显所有的标签,所有的东西都工作了,只是它没有显示在我的数据库中。在我添加加密部分之前,所有这些都可以正常工作。我已经发现,如果我使用MCRYPT\u RAND而不是MCRYPT\u DEV\u uradom它似乎工作得更好。有些东西告诉我这可能只是一个我找不到的简单错误。任何关于如何找到这个错误或答案的提示都将不胜感激 <?php $account = "$_REQUEST[Account]"; $password
MCRYPT\u RAND
而不是MCRYPT\u DEV\u uradom
它似乎工作得更好。有些东西告诉我这可能只是一个我找不到的简单错误。任何关于如何找到这个错误或答案的提示都将不胜感激
<?php
$account = "$_REQUEST[Account]";
$password = "$_REQUEST[Password]";
$pin = "$_REQUEST[Pin]";
$date = "$_REQUEST[Date]";
$username1 = "$_REQUEST[Username]";
$store1 = "$_REQUEST[Store]";
$category1 = "$_REQUEST[Category]";
$amount1 = "$_REQUEST[Amount]";
$bankaccount1 = "$_REQUEST[BankAccount]";
$notes1 = "$_REQUEST[Notes]";
$millisecond = "$_REQUEST[MilliSecond]";
$sqlaccounts = mysql_connect("localhost", "root", "")
or die (mysql_error());
mysql_select_db("bumblebeesaccounts", $sqlaccounts);
$sql = "SELECT * FROM `users` WHERE `account` = '$account'";
$result = mysql_query($sql, $sqlaccounts);
$verify_account = mysql_fetch_assoc($result);
$key = $verify_account['salt'];
$username = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $username1, MCRYPT_MODE_ECB);
$store = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $store1, MCRYPT_MODE_ECB);
$category = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $category1, MCRYPT_MODE_ECB);
$amount = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $amount1, MCRYPT_MODE_ECB);
$bankaccount = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $bankaccount1, MCRYPT_MODE_ECB);
$notes = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $notes1, MCRYPT_MODE_ECB);
$sqlconnect = mysql_connect("localhost", "root", "")
or die (mysql_error());
mysql_select_db("bumblebeesbudgetapp", $sqlconnect);
$sqlinsert = "INSERT INTO `bob` (`id`, `date`, `username`, `store`, `category`, `amount`, `bank account`, `notes`, `millisecond`, `receiptpicture`)
VALUES (NULL, '$date', '$username', '$store', '$category', '$amount', '$bankaccount', '$notes', '$millisecond', '')";
mysql_query($sqlinsert, $sqlconnect);
echo $username;
echo mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $username, MCRYPT_MODE_ECB);
?>
阵列访问
要从关联数组(如$\u REQUEST
中获取值,您应该从
...
$account = "$_ REQUEST[account]";
...
至
...
$account = $_REQUEST["account"];
...
插入语句
我认为列id是主键,不是吗?所以它不能为空。如果是自动增量列,则可以保留以下值:
$sqlinsert = "INSERT INTO `bob` (`date`, `username`, `store`, `category`, `amount`, `bank account`, `notes`, `millisecond`, `receiptpicture`)
VALUES ('$date', '$username', '$store', '$category', '$amount', '$bankaccount', '$notes', '$millisecond', '')";
我现在开始了。我所做的最大的改变是我对所有mcyrpt数据进行了base64加密
$username = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $username1, MCRYPT_MODE_ECB));
$store = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $store1, MCRYPT_MODE_ECB));
$category = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $category1, MCRYPT_MODE_ECB));
$amount = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $amount1, MCRYPT_MODE_ECB));
$bankaccount = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $bankaccount1, MCRYPT_MODE_ECB));
$notes = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $notes1, MCRYPT_MODE_ECB));
请参阅此“$\u请求[帐户]”代码>等等。?你所有的报价都是相反的。错误………报告。@Fred ii-你能说得更具体一点,比如你所说的反转吗?所以有些东西似乎不适合我。我回显了$sqlinsert并手动将其插入phpmyadmin中的sql选项卡下,得到了一个巨大的错误。是否由于特殊字符,此加密ins不支持与sql查询一起插入?能否发布从phpmyadmin获得的错误代码?