我有一个通过URL传递变量的页面(video.php?video = VALUE),然后在整个页面中使用该页面来提取有关视频的各种详细信息 - 标题,静止,年份等
如果将不正确的值或数据库中没有的内容输入到URL字符串中,我想显示404 /错误,如果值正确,则显示从数据库中提取相应值的页面
目前,我只是试图获取基本代码,并编写了以下内容......
<?php include("credentials.inc"); ?>
<?php
$video = $_GET['video'];
$videodata = $pdo->prepare("SELECT * FROM video WHERE site url =:siteurl LIMIT 1"); // check db for :siteurl value
$videodata->bindParam(':siteurl', $_GET['video'], PDO::PARAM_STR); // bind site url to $_Get Value...
$videodata->execute(); // execute
if($videodata->rowCount()) { // If videodata [url string] returns data then...
echo '<b>hello world... this entry is there!</b>';
} else {
echo 'NO .... ITS NOT THERE';
}
?>
我似乎没有收到任何错误,但同时没有任何事情发生,我回来的页面只是空白。
关于我的代码出错的地方的任何指示都会受到大力赞赏!
答案 0 :(得分:2)
@ Fred-ii致命错误:未捕获异常'PDOException',消息为'SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法出错;检查与您的MariaDB服务器版本对应的手册,以便在'url =附近使用正确的语法?限制1' - hj8ag“
此列名称中有一个空格:
WHERE site url
^ it hit a hole in the road
如果这是实际列的名称,则需要勾选它。
WHERE `site url`
要么是这样,要么使用下划线和表格将其重命名为site_url
。
以前在评论中注明了其他语法错误。
您还应该确保对GET数组使用isset()
或!empty()
,并且它在数据库中包含值匹配。
即:
if(isset($_GET['video'])){
$video = $_GET['video'];
}
else {
echo "Not set";
}