Closed. This question needs details or clarity。它目前不接受答案。
想改进这个问题吗?添加细节并通过editing this post澄清问题。
5年前关闭。
我试图在varchar字段中插入一个新列
我的代码
应该是10-14
但结果是-4
如果我只想插入月份和年份,如“10-14”或“10/14”,我应该怎么做?
致:(顺便说一下,最后一个括号放错了位置)
或
使用单封装引号需要引用
而双引号要求在值中
如果不这样做,SQL将其解释为执行一个数学问题,这意味着连字符被解释为减号。
即:10减22(基于今天的日期),导致SQL错误。
使用
“字段列表”中的未知列“$ndate”
如果支架放在正确的位置:
与一起使用,并使用发布的代码:
会发出以下错误的信号:
分析错误:语法错误,在。。。
但是,使用此方法可以打开SQL injection。
使用prepared statements或PDO与prepared statements一起使用。
“我正在尝试向varchar字段插入新列”
我建议不要使用
以下是一些列类型:
日期
日期时间
时间戳
时间
年
另外,还可以使用SQL的内置
想改进这个问题吗?添加细节并通过editing this post澄清问题。
5年前关闭。
我试图在varchar字段中插入一个新列
我的代码
$time = time();
$ndate = date('m-y', $time);
echo $ndate;
mysqli_query($conadd,'INSERT INTO nnn (`month`) VALUES ($ndate))';
应该是10-14
但结果是-4
如果我只想插入月份和年份,如“10-14”或“10/14”,我应该怎么做?
最佳答案
您需要更改此行:
mysqli_query($conadd,'INSERT INTO nnn (`month`) VALUES ($ndate))' ;
misplaced ^ ^ move here
致:(顺便说一下,最后一个括号放错了位置)
mysqli_query($conadd,'INSERT INTO nnn (`month`) VALUES ("'.$ndate.'")');
或
mysqli_query($conadd,"INSERT INTO nnn (`month`) VALUES ('$ndate')");
使用单封装引号需要引用
$ndate
变量=>"'.$ndate.'"
而双引号要求在值中
'$ndate'
。如果不这样做,SQL将其解释为执行一个数学问题,这意味着连字符被解释为减号。
即:10减22(基于今天的日期),导致SQL错误。
使用
or die(mysqli_error($conadd))
将发出以下错误的信号:“字段列表”中的未知列“$ndate”
如果支架放在正确的位置:
mysqli_query($conn,'INSERT INTO nnn (`month`) VALUES ($ndate)')
or die(mysqli_error($conadd));
与一起使用,并使用发布的代码:
mysqli_query($conadd,'INSERT INTO nnn (`month`) VALUES ($ndate))'
or die(mysqli_error($conadd));
会发出以下错误的信号:
分析错误:语法错误,在。。。
但是,使用此方法可以打开SQL injection。
使用prepared statements或PDO与prepared statements一起使用。
“我正在尝试向varchar字段插入新列”
我建议不要使用
VARCHAR
来存储日期/时间,因为当您稍后决定查询日期差异等时,只会使它变得更加困难。以下是一些列类型:
日期
日期时间
时间戳
时间
年
另外,还可以使用SQL的内置
NOW()
函数来存储当前时间/日期。关于php - 无法将日期插入列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26518385/