使用安全pdo打印db中的值

qni6mghb  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(267)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

两年前关门了。
改进这个问题
我对php很陌生。我总是这样。我有一个与各种项目页。每个项目都有一个指向每个项目描述的链接,例如:www.example.com/project.php?id=1
在页面项目y中,获取变量并在db中搜索(select*from table where id=$id
我举个例子 echo $row['name'] 嗯,一个朋友告诉我,我必须做一个pdo查询,因为我所做的是不安全的。我想知道是否有人能帮我处理代码。这是我到现在为止所做的,但我不能前进。
非常感谢!

$db = new PDO('mysql:host='.$dateBaseHost.';dbname='.$dateBaseName, 
$dateBaseUsername, $dateBasePassword);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

//simple query and binding with results
$query = $db->prepare(" SELECT * FROM grafica WHERE ID = :id ");
zzzyeukh

zzzyeukh1#

上面的代码看起来不错。现在你只需要绑定到 :id 参数 bindParam() ,然后使用 execute() . 您可以使用 fetchAll() .

// Simple query and binding with results
$value = 1;
$query = $db->prepare("SELECT * FROM grafica WHERE ID = :id");
$query->bindParam(':id', $value);
$query->execute();
$result = $query->fetchAll();

// Output all the results
print_r($result);

// Loop over the results to output a specific result
foreach ($result as $row) {
    echo $row['id'];
}
shyt4zoc

shyt4zoc2#

所以我必须通过url发送id,比如www.mysite.com?id=1 代码应该是这样的?

$id = $_GET['id'];
$db = new PDO('mysql:host='.$dateBaseHost.';dbname='.$dateBaseName, 
$dateBaseUsername, $dateBasePassword);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Simple query and binding with results
$query = $db->prepare("SELECT * FROM grafica WHERE ID = :id");
$query->bindParam(':id', $id);
$query->execute();
$result = $query->fetchAll();

// Output all the results
print_r($result);

// Loop over the results to output a specific result
foreach ($result as $row) {
echo $row['id'];
}

相关问题