获取字符串数组并将其用作列名

时间:2014-10-05 12:53:00

标签: php mysql

我试图发送一个值列表并在sql查询中将它们用作列名。然而,它不起作用,我不知道为什么。我启用了php警告,日志文件没有显示任何错误。我在phpMyAdmin中尝试了sql查询,但它确实有效。在发送数组的jquery函数中也没有错误。任何人都可以帮助我吗?

这是我的php文件获取数组:

$effect = $_GET['effect'];
$effectArray = rtrim(str_repeat("e.? = 't' OR ", count($effect)), "OR ");

$result = $db->prepare("
    SELECT *
    FROM skills s, skill_effect_types e
    WHERE s.id=e.skill_id AND ($effectArray)");
$result->execute($effect);
$result->setFetchMode(PDO::FETCH_OBJ);

这是$ result的print_r:

PDOStatement Object ( [queryString] => SELECT * FROM skills s, skill_effect_types e WHERE s.id=e.skill_id AND (e.? = 't' OR e.? = 't'))

这是$效果的print_r:

Array ( [0] => silence [1] => stun )

1 个答案:

答案 0 :(得分:0)

PDO中的表和colomns无法替换。相反,您可以对数据进行过滤和清理。一种方法是将速记参数分配给将运行查询的函数。

请查看here以获取详细说明。谢谢