Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL类型NOW()不工作_Mysql_Sql_Datetime - Fatal编程技术网

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。我尝试过以下类型:

  • 时间戳
  • 日期
  • 日期时间
  • 时间
但总是0000-00-00:00: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查询字符串?最好假设所有文本都是可疑的(尤其是来自动态源的),并使用准备好的语句。您不需要动态查询(串联字符串)这里有一个动态语句的用例,但这些语句通常很小,“攻击面”甚至可以受到限制。例如,不要将动态查询与其参数连接在一起-正常准备(新)语句。