【问题标题】:Inserting into MySQL database插入 MySQL 数据库
【发布时间】: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 应该足够了。

标签: php mysql


【解决方案1】:
 INSERT INTO core_modules (username,courseID,title,credits) 
 SELECT '$username', ID, title, credits 
 FROM module 
 WHERE ID IN ('CS4150','CS4403','CS4407','CS4501','CS4504','CS4614')

【讨论】:

    猜你喜欢
    • 2016-03-25
    • 2015-01-02
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2018-03-31
    • 2013-05-29
    相关资源
    最近更新 更多