php - 将 md5 哈希插入 mysql 数据库

标签 php mysql md5

我正在尝试使用 php 将 md5 哈希插入到 mysql 数据库表中。

        $key = $email . date('mY');
        $key = md5($key);

        $query = "INSERT INTO confirm (key, angemeldet_von, geschlecht, geburtstag)
            VALUES('$key', '$angemeldet_von', '$geschlecht', '$geburtstag')";
        $confirm = mysql_query($query, $connectionID)
          or die('failed connecting: ' . mysql_error());

此查询返回错误:

failed connecting: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key, angemeldet_von, geschlecht, geburtstag) VALUES('8fe3ec75be1a43b49eacd3' at line 1

但是当我省略键列及其值时,相同的查询运行良好。 那么这里的问题是什么? 数据库:

key varchar(128)    utf8_general_ci

最佳答案

keyreserved word在 MySQL 中。将其括在反引号中!

像这样..

$query = "INSERT INTO confirm (`key`, angemelde
                               ^   ^ ------ Like that

PHP 5.5.0 起,此 (mysql_*) 扩展已弃用,并将在未来删除。相反,应该使用 MySQLiPDO_MySQL 扩展。切换到 PreparedStatements 可以更好地抵御 SQL 注入(inject)攻击! ^^

关于php - 将 md5 哈希插入 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22423681/

相关文章:

java - MD5在Java中生成31个字符的散列

hash - 哪些哈希算法是可并行的?优化多核 CPU 上大文件的哈希处理

php - Composer BowerPHP 错误

php - check_phone 函数中的电话号码验证

mysql - 当 Where 子句中的术语不在数据库中时,如何从 MySQL 数据库返回 0?

mysql - Ubuntu 16.04 Node.JS 应用程序无法连接到 MySQL 数据库 - 错误 : connect ECONNREFUSED

hash - 具有不同结果的 MD5 哈希

php - UTF-8贯穿始终

php - mysql select 语句在 cron 作业运行后仅选取新插入的记录

mysql - 如何对不区分大小写的 MySQL 数据库执行区分大小写的搜索?