php - PHP PDO 中的绑定(bind)参数

标签 php mysql

我正在尝试创建一个动态查询生成器。

我有两段代码。

第一步,创建 PDO 对象(我知道这有效),然后在我的查询生成器中运行搜索函数。

include 'core/database/dbloader.php';
$domainName = "lomcn.org";

$query = new dbquery(Connection::make($dbconfig['domainhistory']));
$query->search('dns','domain',$domainName);

搜索功能是-

public function search($table,$field,$domainName)
{
    $statement = $this->pdo->prepare("SELECT * FROM {$table} WHERE {$field} LIKE :domain");
    $statement->bindParam(":domain",$domainName);
    $statement->execute();

    return ($statement->fetchAll(PDO::FETCH_ASSOC));
}

这不会返回任何错误,但不会显示任何数据。我错过了什么吗?目的是你应该能够运行

$query->search(table,field,value); 

而且它确实有效。

最佳答案

当然什么也没有显示,你没有告诉它显示任何东西。没有回显命令。没有打印命令。没什么。

您可以尝试类似的操作,而不是 $query->search(table,field,value);;

foreach ($query->search(table,field,value) as $row) {
    print $row['DB_COLUMN_1'];
    print $row['DB_COLUMN_2'];
    print $row['DB_COLUMN_3'];
}

此外,如果您在 SQL 语句中使用 LIKE 子句,则需要使用百分号作为通配符,否则 LIKE 子句将无法按预期工作。因此,除非您正在寻找完全匹配的内容,否则请将您的bindParam更改为:

$statement->bindParam(":domain", "%" . $domainName . "%");

关于php - PHP PDO 中的绑定(bind)参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47439472/

相关文章:

php - 从路径中提取文件名

php - 使用 Web 套接字向客户端发送消息

php - 为mysql textarea添加换行符

php if 和 elseif 语句具有多个/超过 3 个条件

javascript - 将 js 转换为 php 以获得背景色 cookie

php - API 的安全 MySQL 查询

mysql - 我在 SubSonic 3 和 MySQL 的无符号数据类型方面遇到问题

MySQL 从 CSV 数据加载 NULL 值

php - 处理查询/多个查询的多个结果时的最佳实践?

mysql - 对 mysql 表中的所有记录使用 Trim