我是PHP的新手。这就是我一直以来所做的。我有一个包含各种项目的页面。每个项目都有一个链接,其中包含每个项目的描述,例如:www.example.com/project.php?id = 1
在页面项目中,取变量并在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 ");
答案 0 :(得分:5)
您的上述代码看起来不错。现在,您只需要使用 bindParam()
绑定到:id
参数,然后使用 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'];
}
答案 1 :(得分:0)
所以我必须通过网址发送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'];
}