Mysql SQL类型NOW()不工作
我有这个疑问,Mysql SQL类型NOW()不工作,mysql,sql,datetime,Mysql,Sql,Datetime,我有这个疑问, "INSERT INTO download(download_key, ip, file, expire) VALUES ('".$text."', '".$mysql->real_escape_string($_SERVER['REMOTE_ADDR'])."', '".$searchQuery['file_match']."', 'NOW() + INTERVAL 10 MINUTES')" 当我将其插入数据库时,行expire总是0000-00-00:00:0
"INSERT INTO download(download_key, ip, file, expire) VALUES ('".$text."',
'".$mysql->real_escape_string($_SERVER['REMOTE_ADDR'])."',
'".$searchQuery['file_match']."',
'NOW() + INTERVAL 10 MINUTES')"
当我将其插入数据库时,行expire总是0000-00-00:00:00。我尝试过以下类型:
- 时间戳
- 日期
- 日期时间
- 时间
现在正确的类型是什么()?我正在使用MYSQL删除引号,引号用于字符串
NOW() + INTERVAL 10 MINUTE
删除引号,引号用于字符串
NOW() + INTERVAL 10 MINUTE
我要对人们已经说过的话补充一点 除了不应将sql函数作为字符串传递,因此不要将
NOW()+INTERVAL 10 MINUTES
放在引号中之外,还可以传递日期字符串。例如,您可以使用php生成此日期
尝试使用此小提琴检查如何将简单日期放入数据库:
使用PHP,您还可以使用以下代码生成日期:
$minutes = 10;
$date = date('Y-m-d H:i:s', time() + $minutes*60);
$query = "INSERT INTO download(download_key, ip, file, expire) VALUES ('$text',
'{$mysql->real_escape_string($_SERVER['REMOTE_ADDR'])}',
'{$searchQuery['file_match']}',
'$date')";
我要对人们已经说过的话补充一点 除了不应将sql函数作为字符串传递,因此不要将
NOW()+INTERVAL 10 MINUTES
放在引号中之外,还可以传递日期字符串。例如,您可以使用php生成此日期
尝试使用此小提琴检查如何将简单日期放入数据库:
使用PHP,您还可以使用以下代码生成日期:
$minutes = 10;
$date = date('Y-m-d H:i:s', time() + $minutes*60);
$query = "INSERT INTO download(download_key, ip, file, expire) VALUES ('$text',
'{$mysql->real_escape_string($_SERVER['REMOTE_ADDR'])}',
'{$searchQuery['file_match']}',
'$date')";
感谢@Kelu Thatsall:
修正:
感谢@Kelu Thatsall:
修正:
仍然0000-00-00 00:00:00类型:DATETIME+1此。我还要补充一件事-引号不是日期类型的错误,但是如果要为日期传递字符串,则需要使用正确的语法输入日期,例如,用PHP或任何您正在使用的语言生成正确的日期。因此,正确的SQL也应该是:
“,'2013-11-24 12:00:00')”
是否确实插入了任何内容?检查是否有最后一行。仍然是0000-00-00:00:00类型:DATETIME+1 this。我还要补充一件事-引号不是日期类型的错误,但是如果要为日期传递字符串,则需要使用正确的语法输入日期,例如,用PHP或任何您正在使用的语言生成正确的日期。因此,正确的SQL也应该是:“,'2013-11-24 12:00:00')”
是否确实插入了任何内容?检查是否有最后一行。请注意,最好避免将字符串完全串联在一起,而使用准备好的语句,否则会有SQL注入的风险(例如,您是否绝对确定$text
和$searchQuery['file\u match']
是安全的?)。请阅读以获取更多信息(说明“$mysql->real\u escape\u string()也不推荐使用)。是的,$text是随机的,没有用户输入。$searchQuery['file\u match']正在从数据库中提交。$searchQuery如何['file_match']
放入数据库?即,是否有人能够向文件中添加随机文本?例如SQL查询字符串?最好假设所有文本都是可疑的(尤其是来自动态源的),并使用准备好的语句。您不需要动态查询(串联字符串)这里有一个动态语句的用例,但是这些语句通常很小,而且“攻击面”甚至可以在那时受到限制。例如,不要将动态查询与其参数连接起来——准备(新的)语句正常。请注意,最好避免将字符串完全连接到准备好的语句中,否则会有SQL注入的风险(例如,您是否绝对确定$text
和$searchQuery['file\u match']
是安全的?)。请阅读了解更多信息(这说明“$mysql->real\u escape\u string()也不推荐使用)。是的,$text是随机的,没有用户输入。$searchQuery['file\u match']正在从数据库中删除。$searchQuery['file\u match']怎么样
放入数据库?例如,是否有人能够向文件中添加随机文本?例如SQL查询字符串?最好假设所有文本都是可疑的(尤其是来自动态源的),并使用准备好的语句。您不需要动态查询(串联字符串)这里有一个动态语句的用例,但这些语句通常很小,“攻击面”甚至可以受到限制。例如,不要将动态查询与其参数连接在一起-正常准备(新)语句。