-1

html5 入力型の日付変数をパラメータとしてストアド プロシージャに渡そうとしています。私のphpページでクエリは正常に実行されますが、ストアドプロシージャが挿入するテーブルの列の日付値は0000-00-00としてマークされています。

どこで間違ったのか教えてください。御時間ありがとうございます。

<?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>

SQL fn:

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`)
)
4

2 に答える 2

0

まず、html の値を PHP の日付に変換する必要があります。その後、データベースが理解できる形式であると仮定して、それをストアド プロシージャに渡すことができるはずです。PHP の DateTime 関数を参照してください: http://www.php.net/manual/en/function.getdate.php

于 2013-09-18T15:08:43.223 に答える