PDO,$ _GET和从MySQL数据库中选择

时间:2016-10-18 04:29:57

标签: php mysql apache pdo

所以我在我的空闲时间开发一个PHP Pastebin-esque项目来学习PHP和服务器管理,我遇到了很多问题,而且我还没有能够解决它们。我决定用自己迄今为止收集的信息自行重新开始,并将这些代码放在一起。

<?php
    require 'connection.php';
        $getid = $_GET["id"];
        $sql = 'SELECT paste FROM pasteinfo WHERE id=:id';
        $stmt = $con->prepare($sql);
        $stmt->bind_param(':id', trim($_GET["id"], PDO::PARAM_INT));
        $stmt->execute();

        while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            echo $row['paste'];
        }

?>

我尝试使用此代码实现的是一个系统,用户可以在其中输入他们有兴趣在网址中查看的任何粘贴的 id 并让其显示pasteinfo行,它是保存粘贴本身的行。他们应该具有的格式是viewpaste.php?id =(用户输入)。

如何修复此代码?如果您解释可能最终放在评论中的任何代码,我也将非常感谢,以便我可以从中学习。谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个;

connection.php

try{
$db = new PDO('mysql:host=localhost;dbname=database_name;charset=utf8mb4', 'database_username', 'database_password');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}
catch (PDOException $ex){
echo $ex->getMessage();return false;
}

function retrieve($query,$input) {
 global $db;
 $stmt = $db->prepare($query);
 $stmt->execute($input);
 $stmt->setFetchMode(PDO::FETCH_OBJ);   
 return $stmt;
}

要检索数据,请调用retrieve()函数

检索页面,比如display.php

require 'connection.php';
$getid = $_GET["id"];
$result=retrieve("SELECT paste FROM pasteinfo WHERE id=?",array($getid));
$row=$result->fetch();
//To get paste column of that id
$paste=$row->paste;
echo $paste;