PDO - 在我的情况下那个大的 bindValue 与 bindParam
PDO - That big bindValue vs bindParam in my situation
是的...这是其中之一。
好吧,我目前正在研究我们可以称之为社交网络的东西。
我正在使用带有 PDO 的 Slim Framework,这是我的第一份工作,也是我的第一个项目。
所以,问题是我的控制器中有一个字符串,但我想将它传递给模型,但是在它传递给模型之后(我已经用 print_r 进行了测试,看它是否通过了并且它确实如此)bindParam 似乎没有把它放在查询中。
函数应该是这个:
public static function obterTagsDasPessoas($ids)
{
$container = getContainer();
$query = $container->db->prepare("SELECT * FROM Pessoas_tags WHERE :ids");
$query->bindParam(':ids', $ids, PDO::PARAM_STR);
$query->execute();
$result = $query->fetchAll();
return $result;
}
我已经尝试更改为 bindValue,因为我发现它更适合文本。我不知道发生了什么,因为它没有给出任何错误;它似乎并没有应用那个 bindParam 然后继续。
$ids
里面是 id_Pessoas = 1 OR id_Pessoas = 4
,它应该补充那里的查询。我已经尝试将它复制到 phpmyadmin 和 mySql 并且它给了我预期的结果,它只是不适用于该功能。
我做错了什么吗?提前致谢。
我认为您应该在 $ids 参数中发送一个 ID,例如 1 或 4。
然后将您的查询编辑为
$query = $container->db->prepare("SELECT * FROM Pessoas_tags WHERE id_Pessoas=:ids");
我认为这应该可行。
是的...这是其中之一。
好吧,我目前正在研究我们可以称之为社交网络的东西。 我正在使用带有 PDO 的 Slim Framework,这是我的第一份工作,也是我的第一个项目。 所以,问题是我的控制器中有一个字符串,但我想将它传递给模型,但是在它传递给模型之后(我已经用 print_r 进行了测试,看它是否通过了并且它确实如此)bindParam 似乎没有把它放在查询中。
函数应该是这个:
public static function obterTagsDasPessoas($ids)
{
$container = getContainer();
$query = $container->db->prepare("SELECT * FROM Pessoas_tags WHERE :ids");
$query->bindParam(':ids', $ids, PDO::PARAM_STR);
$query->execute();
$result = $query->fetchAll();
return $result;
}
我已经尝试更改为 bindValue,因为我发现它更适合文本。我不知道发生了什么,因为它没有给出任何错误;它似乎并没有应用那个 bindParam 然后继续。
$ids
里面是 id_Pessoas = 1 OR id_Pessoas = 4
,它应该补充那里的查询。我已经尝试将它复制到 phpmyadmin 和 mySql 并且它给了我预期的结果,它只是不适用于该功能。
我做错了什么吗?提前致谢。
我认为您应该在 $ids 参数中发送一个 ID,例如 1 或 4。
然后将您的查询编辑为
$query = $container->db->prepare("SELECT * FROM Pessoas_tags WHERE id_Pessoas=:ids");
我认为这应该可行。