我想创建一个函数来选择具有特定标准的每个字段。所以基本上我想点击一个链接并让该链接的某些部分告诉我的 php 函数选择的标准是什么。
我有一个这样的链接列表:
<li><a href="category.php?category=cat1">Cat1</a></li>
<li><a href="">Cat2</a></li>
<li><a href="">Cat3</a></li>
<li><a href="">Cat4</a></li>
<li><a href="">Cat5</a></li>
链接部分是.php?category=criteria
。如何将此信息发送到我的函数并使用它来选择字段?
这是我的功能:
public function get_by_category ($cat) {
$cat = $_GET['category'];
$sql = $this->db->prepare("SELECT * FROM Content WHERE category=?");
$sql->bindParam(1, $cat);
$sql->execute();
while ($row = $sql->fetch()) {
echo $row['Title'];
}
}
结果什么都没有,没有错误等。它不知道如何获取标准,因为我不知道如何将标准指向它。我怎样才能做到这一点?重要的是我可以通过链接指定标准。
最佳答案
使用具有命名参数的 PDO 通常有效:
public function get_by_category ($cat) {
$cat = $_GET['category'];
$sql = $this->db->prepare("SELECT * WHERE category=:category");
$sql->bindParam("category", $cat);
$sql->execute();
while ($row = $sql->fetch()) {
echo $row['Title'];
}
}
您可以通过在将准备好的语句发送到 SQL 之前放置 print $sql->fullStmt
检查准备好的语句来查看正在执行的 SQL。
更新:为了查看 PDO 异常,您可以 try catch 它们:
public function get_by_category ($cat) {
$cat = $_GET['category'];
try {
$sql = $this->db->prepare("SELECT * WHERE category=:category");
$sql->bindParam("category", $cat);
$sql->execute();
}
catch (PDOException $e) {
print $e->getMessage();
}
while ($row = $sql->fetch()) {
echo $row['Title'];
}
}
关于php - 如何从 url 获取信息并在 php 函数中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14502382/