我有一个搜索表单,用户可以在其中搜索序列号或产品名称。
这是我的代码:
<?php
require_once "pdo_rothConn.php";
if (isset($_POST['searchText'])){
$sql = "SELECT m_ipdb, m_name FROM machine WHERE 'm_ipdb' LIKE :number OR 'm_name' LIKE :name";
$stmt = $dbh->prepare($sql);
$stmet->execute(array(
':number' => $_POST['searchText'],
':name' => $_POST['searchText']));
while ( $row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
echo($row['m_ipdb']);
echo($row['m_name']);
}
?>
<p>Search for a Machine</p>
<form method="post">
<table width="500" border="1">
<tr>
<td>Enter IPDB Number or Name:</td>
<td><input name="searchText" type="text" id="searchText" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Search Database"></td>
<td><a href="#">Cancel</a></p></td>
</tr>
</table>
</form>
</body>
</html>
首先,是否有一种更简洁的方法可以编写我的SQL语句,因为我搜索的$ _POST值是相同的?我不确定我的SQL语句中是否还有多个LIKE语句的错误。
截至目前,生成的页面显示为空白,根本无法正常工作。我想过将代码拆分成页面和处理页面而不是后页面。我被卡住了。但在我了解PDO并准备好语句并获得反馈以了解准备/参数化语句之前,我问了这个问题。生成的代码是否也能正确地防止SQL注入?
感谢。
答案 0 :(得分:2)
$ stmet-&gt;执行到$ stmt-&gt;执行?