我花了很多时间研究如何做到这一点,但就是无法让它发挥作用:(
我有一个简单的“联系人” MySQL 数据库,其中包含一些记录的表 ( id
, first_name
, last_name
, )。email
我想让用户选择他们的搜索词,即搜索first_name
特定名称的“”列,或搜索“ last_name
”列等。
我有一个简单的 HTML 表单,可以将用户数据发送到脚本。
无论如何,我的 PHP 脚本如下所示。当我运行 PHP 脚本时,我没有收到任何错误……只是我什么也没有得到……没有任何反应。
我将不胜感激您能提供的任何帮助。
<?php
try{
$conn = new PDO('mysql:host=localhost; dbname=mydbname', 'user', 'pass');
}catch (PDOException $e){
echo "Cannot connect to database";
exit;
}
$sql = 'SELECT first_name, last_name, email FROM mycontacts WHERE :searchtype LIKE :searchterm';
$searchtype = '%'. $_POST['searchtype'] .'%';
$searchterm = '%'. $_POST['searchterm'] .'%';
$stmt = $conn->prepare($sql);
$stmt->bindParam(':searchtype', $searchtype, PDO::PARAM_STR);
$stmt->bindParam(':searchterm', $searchterm, PDO::PARAM_STR);
$stmt->bindColumn(1, $first_name);
$stmt->bindColumn(2, $last_name);
$stmt->bindColumn(3, $email);
$stmt->execute();
$numRows = $stmt->rowCount();
echo "<p>Number of rows:".$numRows."</p>";
if (isset($numRows)) { ?>
<table>
<tr>
<th scope="col">First Name</th>
<th scope="col">Last Name</th>
<th scope="col">Email</th>
</tr>
<?php while ($stmt->fetch()) { ?>
<tr>
<td><?php echo $first_name; ?></td>
<td><?php echo $last_name; ?></td>
<td><?php echo $email; ?></td>
</tr>
<?php } ?>
</table>
<?php } ?>