在MySQL-PHP-Code中使用预处理语句

时间:2016-01-17 09:22:24

标签: php mysql prepared-statement sql-like

我是新手,所以我的问题可能有点奇怪。我正在尝试为以下代码使用预准备语句:

<?php
require_once(__DIR__.'/config.php');


$value = $_POST["value"];
$ort = $_GET["ort"];


$stmt = $pdo->prepare('SELECT * FROM Suchmaschine WHERE firma = :firma AND ort = :ort');
$stmt->execute(array('firma' => $value, 'ort' => $value));

foreach ($stmt as $row) {   
   echo "<a href=".$row['link'].">".$row['firma']."</a><br>";
}
?>

我尝试了一些方法,但它不起作用。

2 个答案:

答案 0 :(得分:1)

首先,您缺少这一行:错误的变量名称应为:

$stmt->execute(array(':firma' => $value, ':ort' => $ort));

然后你没有得到结果。

$results = $stmt->fetchAll();

foreach( $results as $row ) {
        echo "<a href=".$row['link'].">".$row['firma']."</a><br>";
}

答案 1 :(得分:0)

问题在于以下几行:

$stmt->execute(array('firma' => $value, 'ort' => $value));

应更改为:

$stmt->execute(array(':firma' => $value, ':ort' => $value));

请注意添加冒号前面的字符串作为键传递给传递给execute语句的数组。

见这里:http://php.net/manual/en/pdostatement.execute.php