将HTML5输入类型日期转换为字符串

时间:2013-09-18 15:22:18

标签: php mysql html5 stored-procedures

我的PHP代码

<?php include 'config.php';
if(isset($_POST['submitbtn'])){
$date = $_POST['datefield'];
$newDate = date("Y-m-d", strtotime($date));

$result = mysql_query("Call seat(".$newDate.")");

if($result == FALSE){
    echo "Sorry Query Failed!";
}
else
{
    echo "Success";
}

}
?>

html>
<head>

</head>
<body>
<form method="post">
<input type="date" name="datefield"><br>
<input type="submit" name="submitbtn">
</form>
</body>
</html>

这将使用定义调用存储过程:

CREATE DEFINER=`root`@`localhost` PROCEDURE `seat`(IN `dateP` VARCHAR(20))
NO SQL
begin
declare i int default 1;
while i < 250 do
insert into seat (Seat_ID,dateP) values (i,dateP);
set i = i + 1;
end while;
end

桌座具有以下结构:

CREATE TABLE IF NOT EXISTS `seat` (
`ID` int(100) NOT NULL AUTO_INCREMENT,
`Seat_ID` int(4) NOT NULL,
`Row_ID` varchar(2) NOT NULL,
`Col_ID` int(4) NOT NULL,
`Amount` int(3) NOT NULL,
`DateP` date NOT NULL,
 PRIMARY KEY (`ID`)
 )

此处DateP列在所有250行中作为0000-00-00插入。 我帮我错了。

1 个答案:

答案 0 :(得分:0)

php date-function希望timestamp和html5 date输入返回日期格式。为什么不直接使用日期格式? (不确定,但疯狂猜测)

$date = $_POST['datefield'];
$newDate = date("Y-m-d", strtotime($date));   /* <-- REMOVE THIS LINE? */
$result = mysql_query("Call seat(".$date.")");

问题:Mysql区分大小写。您在过程

中有表DateP和dateP
insert into seat (Seat_ID,dateP) values (i,dateP); /* <-- Change first dateP -> DateP */

其他问题(我不熟悉程序):如果在插入字段名称中使用变量dateP会发生什么变化或者字符串?