Php 使用[';id';]GET参数的SQL查询
查看下面的屏幕截图,我试图使其在您单击“教员”、“学生”或“校友”时,页面(people.php)只返回指定为该页面的数据库结果(mysql)。但是,我一直在第54行收到此错误消息: 致命错误:未捕获的异常“PDOException”带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064您有 SQL语法错误;检查与您的产品相对应的手册 MySQL服务器版本,以便在“:member”附近使用正确的语法 这是因为我在第28-30行中手动设置了“id”吗?我一直在努力想办法解决这个问题,任何帮助都将不胜感激Php 使用[';id';]GET参数的SQL查询,php,mysql,web,Php,Mysql,Web,查看下面的屏幕截图,我试图使其在您单击“教员”、“学生”或“校友”时,页面(people.php)只返回指定为该页面的数据库结果(mysql)。但是,我一直在第54行收到此错误消息: 致命错误:未捕获的异常“PDOException”带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064您有 SQL语法错误;检查与您的产品相对应的手册 MySQL服务器版本,以便在“:member”附近使用正确的语法 这是因为我在第28-30行中手动设置了“id”吗?我一直在努力想办法解决这个问
<?php
echo'<h3 class="panel-title"><a href="people.php?id=faculty">Faculty</a></h3>';
echo'<h3 class="panel-title"><a href="people.php?id=student">Students</a></h3>';
echo'<h3 class="panel-title"><a href="people.php?id=alum">Staff</a></h3>';
?>
</div>
</div>
</div>
<!-- vvvvvvvvvvvvvv-FACE OF THE ORG-vvvvvvvvvvvvvv -->
<div class="col-sm-10">
<div class="row">
<?php
if(!isset($_GET['id'])){
$stmt = $pdo->query("SELECT first_name, last_name, department, website, filename, membership
FROM Profile");
while ( $row = $stmt->fetch(PDO::FETCH_ASSOC) ){
echo '<div class="col-sm-3">
<img class="img-rounded" src="'.$row['filename'].'"/>
<p class="caption">';
echo '<a href="'.htmlentities($row['website']).'" target="_blank">'.$row['first_name'].' '.htmlentities($row['last_name']).'</a>';
echo ', '.htmlentities($row['department']);
echo '</p> </div>';
}
您需要添加代码而不是图像,这样我们才能更好地帮助您。这里我看到的是您正在使用$pdo->query
而不是$pdo prepare
来准备语句。像这样修复它:
$stmt = $pdo->prepare("SELECT first_name, .......,:member");
$stmt->execute(array(":member"=>$_GET['member']));
请张贴您的代码,而不是它的图像。无论如何,我很好奇,所以我看了看。如果您是用一个表单发布数据,而我beleave中有一个post方法,那么您需要这样做:如果(isset($\u post['id'])添加了代码,谢谢!它是从get请求中获取数据我相信你发布的文本代码不是你需要的。另一个是您试图绑定:成员,但没有准备查询。不过,我很好奇,您使用哪个MySQL API连接,是mysqli\uu
,MySQL\u
还是PDO?即使是通过准备和不工作,这也是我能看到它失败的唯一原因。这些图像需要删除。与此相关的错误不需要它们,它们占用了太多的空间。嗨,Tareq,谢谢!我在上面添加了代码(这有帮助吗?)我还将$pdo->query更改为$pdo->prepare,但收到的错误消息与您需要更改的第二个相同:member,而不是第一个。它正在运行查询,而不是创建语句。