【问题标题】:mysql query (insert) inside function unable to executemysql查询(插入)内部函数无法执行
【发布时间】:2012-01-04 11:11:53
【问题描述】:

我有这样的功能:

function record(){
$table = new table;
$clogin = new login;
$date = date("F j, Y, g:i a"); 
$ip =  $_SERVER['REMOTE_ADDR'];
$uri = $_SERVER['REQUEST_URI'];
mysql_query("insert into log (player, date, ip, on) values ('$clogin->username', '$date', '$ip', '$uri')");
$fopen = fopen("data/log.txt", "a+");
fwrite ($fopen, "PLAYER: $clogin->username DATE: $date IP: $ip ON: $uri\n");
fclose ($fopen); }

我在另一个函数中还有其他 mysql 查询,它可以工作。 fopen、fwrite 和 fclose 也正确执行。我想知道,为什么在这个函数中查询不起作用。我写错了查询吗?

【问题讨论】:

  • 您收到的错误是什么?是的,正如 Lukas 指出的那样,你让自己容易受到 SQL 注入的影响 :)
  • 未报告错误。我在该函数中添加了另一个 mysql_query (select) 并且它正常工作。但插入不起作用。哪一部分让我容易受到 SQL 注入的影响? $uri?

标签: mysql function insert


【解决方案1】:

这是因为表LOG的两个字段在mySQL中是Reserved WordDATEON)。而是在字段前后使用反勾号 (`)。

喜欢这个:

INSERT INTO `tableName`(`fieldA`,`fieldB`,`fieldB`) VALUES ('','','');

【讨论】:

  • 欢迎。您必须接受此答案才能让其他人知道您的问题已得到解答。
猜你喜欢
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 2017-01-11
  • 1970-01-01
  • 1970-01-01
  • 2013-03-11
  • 2017-04-23
  • 1970-01-01
相关资源
最近更新 更多