gpt4 book ai didi

php - 我使用 PDO 的 select 语句无法正常工作

转载 作者:行者123 更新时间:2023-11-30 00:24:47 25 4
gpt4 key购买 nike

在这里,我将登录 session 存储在 $userId 变量中以获取我的 ID:

$ userId = $_SESSION['result']['id'];

如果用户想要搜索某个名称,我在这里存储 $_SESSION['where']:

 if(isset($_POST['sendFiltro'])){
$search = $_POST['search'];
if(!empty($search) && $search != 'Name:'){
$_SESSION['where'] = "AND name LIKE '%$search%'";
header('Location: index2.php?exe=adminis/admins');
}else{
unset($_SESSION['where']);
header('Location: index2.php?exe=adminis/adminis');
}
}

在这里,我执行选择语句以使我的管理员显示在表格中:

$pag = (empty($_GET['pag']) ? '1' : $_GET['pag']);
$max = 10;
$first = ($pag * $max) - $first;
$where = isset($_SESSION['where']) ? $_SESSION['where'] : '';
$readAdmin = $pdo->prepare("SELECT * from admins WHERE id != :id {$where} ORDER BY name ASC, level ASC LIMIT :first, :max");
$readAdmin->bindParam(':id', $userId, PDO::PARAM_INT);
$readAdmin->bindParam(':first', $first, PDO::PARAM_INT);
$readAdmin->bindParam(':max', $max, PDO::PARAM_INT);
$readAdmin->execute();
$readAdminRows = $readAdmin->rowCount();
if(!$readAdminRows)
{
echo 'There are no recors in admins table';
}
else
{
//I show my table
}

我的管理表中有 20 条记录,但它总是说我的管理表中没有记录。

您是否在我的代码中发现了导致这种情况发生的错误?

如果我从我的 sql 语句中删除它 WHERE id != :id 它可以工作,但我不想在表中显示当前管理员及其 session 。

最佳答案

$readAdminRows = $readAdmin->rowCount();

如果您将 PDO 配置为使用无缓冲查询,则 rowCount() 函数始终返回 0:

$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

我建议您尝试获取结果集的第一行,如果第一次获取仍然没有返回任何内容,那么您就没有匹配项。

关于php - 我使用 PDO 的 select 语句无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22971530/

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