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

我有两位代码。

首先,创建PDO对象(我知道这可行),然后在我的querybuilder中运行搜索功能。

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/

10-14 14:42
查看更多