【发布时间】:2012-07-12 23:19:31
【问题描述】:
我正在尝试将数据插入 MySQL 数据库。对于插入的每个数据,我希望添加用户名,以便跟踪用户插入该数据。下面是我的示例查询,但用户名没有插入。
$username = $_SESSION['log']['username'];
$Query = "INSERT INTO core_modules
(username,courseID,title,credits)
VALUES ('$username',SELECT ID,title,credits FROM module
WHERE ID IN ('CS4150','CS4403','CS4407','CS4501','CS4504','CS4614'))";
mysql_query($Query);
echo $Query. '<br />';
这就是我的数据库的样子,我需要将用户名插入到插入的每条记录中。
请问我该怎么办?提前致谢。
【问题讨论】:
-
echo $Query 输出什么?
-
在退出会话后您是否仔细检查了
$username的值? -
嗯,真令人惊讶,一个包含易受 sql 注入攻击的代码的问题,我这辈子从未见过这种情况。
-
@Mahn Yep,迫不及待地想用用户名
',ID,title,credits from module; drop database; --注册这个网站! -
可能有点吹毛求疵,但为什么 title,credits 的值会从模块复制到 core_modules?像这样的重复值不仅浪费空间,还会使数据库容易受到值腐烂的影响,并且随着您的进行,整个项目会变得更加繁琐。您是否有理由不能定期对这两个表进行 JOIN 查询?如果没有,module.ID 应该足够了。