2013-08-19 120 views
0

我用pdo准备语句查询我的数据库,我无法弄清楚如何在执行查询后返回实际查询。
我已经尝试过print_r($statement);,但所做的只是给出了pdo准备好的查询。 任何帮助将不胜感激!返回pdo语句的查询

$sql = ("SELECT * FROM `mySite` WHERE `info` LIKE :checkSite OR `users` LIKE :checkSite"); 
$stmt = $pdo->prepare($sql); 
$stmt->bindParam(":checkSite", "%$checkSite%"); 

$stmt->execute(); 
$results = $stmt->fetchAll(); 
foreach($results as $row){ 
    echo $row['users']; 
} 

回答

0

这是一个相当复杂的任务,也是使用预准备语句的一个缺点。

但API不提供这种开箱即用的功能。因此,获取原始SQL的唯一方法是手动分析占位符。 There are some home-brewed solutions in this answer

+0

好的。我正在使用这个在我的网站上创建一个搜索栏...有没有更好的方法,仍然会防止SQL注入? – user2692006

+0

Err ...你是什么意思?编写的语句是处理SQL查询的唯一方法。您也可以使用它们来创建搜索栏。你为什么认为你需要另一种解决方案? –

+0

它似乎只是想获得查询信息是相当奇怪的地方作为查询没有pdo它更容易获取信息 – user2692006