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

标签 php mysql html 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

table 座位结构如下:

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。 请帮助我哪里出错了。

最佳答案

php 日期函数需要时间戳和 html5 日期输入返回日期格式。为什么不直接使用日期格式呢? (不确定但大胆猜测)

$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 会发生什么情况,它是变量还是字符串?

关于php - 将 HTML5 输入类型日期转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18876258/

相关文章:

php - 分解数组并分配为变量

html - Orchard 多级下拉菜单仅点击

php - 如何编写查询以不断获取行直到满足条件

php - PDO表单添加到数据库: Array number is added rather than the text it represents

php - 尽管连接到数据库,mysqli 查询响应仍然为空

php fatal error UserTest setUp 函数的声明

php - PDO - 为 foreach() 提供的参数无效

javascript - 元刷新 seo 问题并在单击表单字段时暂停

html - 有什么方法可以将表格列宽与 HTML + CSS 同步?

php - PDO 请求导致 500 内部服务器错误