gpt4 book ai didi

php - SQL 中的 LIKE 不起作用

转载 作者:行者123 更新时间:2023-11-29 19:08:12 25 4
gpt4 key购买 nike

我正在使用 PDO 来运行此查询,有没有办法查看查询是否返回 false?为什么当我期望结果时我的查询什么也没有返回?

                $selectsql = "SELECT `firstname`,`surname`,`phone`,`address`,`username`,`StudentID` FROM `student_info` WHERE ? LIKE ?";
$selectstmt = $conn->prepare($selectsql);
$selectstmt->execute(array($searchby,"%{$searchval}%"));
while($data = $selectstmt->fetch(PDO::FETCH_ASSOC)){
echo "
<tr>
<td>{$data['firstname']}</td>
<td>{$data['surname']}</td>
<td>{$data['phone']}</td>
<td>{$data['address']}</td>
<td>{$data['username']}</td>
<td>Delete Account</td>
</tr>
";
var_dump($data);
}

我把 $searchby$searchval 转储了,它们对我来说似乎很好,没有打字错误或任何问题。

最佳答案

您的查询存在问题:

$selectsql = "SELECT firstname`,`surname`,`phone`,`address`,`username`,`StudentID` FROM `student_info` WHERE ? LIKE ?";

where 之后的占位符弄乱了您的查询,在 where 子句之后应该有一个列名称,顺便说一句,我看到 $searchby 根据项目进行更改由用户选择。您应该注意的一件事是:

Table and Column names cannot be replaced by parameters in PDO.

您的查询应该如下所示。

<?php

$search = "%".$searchval."%";
$selectsql = "SELECT `firstname`,`surname`,`phone`,`address`,`username`,`StudentID` FROM `student_info` WHERE $searchby LIKE ?";
$selectstmt = $conn->prepare($selectsql);
$selectstmt->execute([$search]);
$results = $selectstmt->fetch((PDO::FETCH_ASSOC));

if(count($results) > 0){
var_dump($results);
foreach($results as $data):?>
<tr>
<td><?php echo $data['firstname'];?></td>
<td><?php echo $data['surname'];?></td>
<td><?php echo $data['phone'];?></td>
<td><?php echo $data['address'];?></td>
<td><?php echo $data['username'];?></td>
<td>Delete Account</td>
</tr>

<?php
endforeach;
}else{

echo "no results found";
}
?>

关于php - SQL 中的 LIKE 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43317973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com