这段代码的问题是什么,我使用表单将一些值插入到数据库中,我有一个像这样的控制器设置。当我提交表单时,该值未发布在数据库中,但是如果我删除所有其他字段并在表单中只留下2个字段并发布它,那么它的工作方式是我错过的,一直试图解决的问题超过6小时。请一些帮助:
//database insertion
if (isset($_POST['VideoTITLE']))
if (isset($_POST['ByArtist']))
if (isset($_POST['GroupName']))
if (isset($_POST['URL']))
if (isset($_POST['VideoDate']))
{
try
{
$sql = 'INSERT INTO videoclip SET
VideoTITLE = :VideoTITLE,
ByArtist = :ByArtist,
GroupName = :GroupName,
URL = :URL,
VideoDate = CURDATE()
';
$s = $pdo -> prepare($sql);
$s -> bindValue(':VideoTITLE',$_POST['VideoTITLE']);
$s -> bindValue(':ByArtist',$_POST['ByArtist']);
$s -> bindValue(':GroupName',$_POST['GroupName']);
$s -> bindValue(':URL',$_POST['URL']);
$s -> execute();
}
catch(PDOException $e)
{
$error = 'error adding submitted data' . $e-> getMessage();
include 'error.html.php';
exit();
}
header('Location:.');
exit();
}
这是我的html表单设置:
<form action="?" method="post" class="form-horizontal">
<legend>Song Info</legend>
<fieldset>
<label>Song Title </label>
<input type="text" id="VideoTITLE" name="VideoTITLE" placeholder="song name…">
<label>Artist </label>
<input type="text" id="ByArtist" name="ByArtist" placeholder="artist name…">
<label>Musical Group</label>
<input type="text" id="GroupName" name="GroupName" placeholder="Type something…">
<label>Poster link</label>
<input type="text" id="URL" name="URL" placeholder="Type something…">
</fieldset><br>
<input type="submit" class="btn btn-success" value="Post video">
</form>
答案 0 :(得分:1)
它有几个问题,或许更多:
isset($_POST['VideoDate'])
,由于VideoDate
不在您的表单中,因此始终为false。您应该这样做,因为您似乎想在插入脚本中使用CURDATE()
进行设置。您的插入语句不正确。 mysql插入通常看起来像INSERT INTO TABLE_NAME (COL1, COL2) values('VALUE1', 'VALUE2');
,因此您应该将插入代码更改为
$sql = 'INSERT INTO videoclip (VideoTITLE, ByArtist, GroupName, URL, VideoDate) values (:VideoTITLE, :ByArtist, :GroupName, :URL, CURDATE())';
答案 1 :(得分:0)
INSERT
的语法不正确。它应该是这样的:
$sql = 'INSERT INTO videoclip (VideoTITLE, ByArtist, GroupName, URL, VideoDate)
VALUES (:VideoTITLE, :ByArtist, :GroupName, :URL, CURDATE())';
此外,$_POST['VideoDate']
无效,因为您的表单中没有。
答案 2 :(得分:0)
您的if
语句错误。
if (isset($_POST['VideoTITLE']) && isset($_POST['ByArtist']) && isset($_POST['GroupName'])
&& isset($_POST['URL']) && isset($_POST['VideoDate'])) {
....
}
这是基本的编程内容,所以你可能希望得到一本很好的编程或PHP入门书。