Php 基于PDO的Sphinx搜索查询
我有一个使用PDO进行全文搜索的mysql查询,我目前安装了sphinx搜索Php 基于PDO的Sphinx搜索查询,php,mysql,pdo,sphinx,Php,Mysql,Pdo,Sphinx,我有一个使用PDO进行全文搜索的mysql查询,我目前安装了sphinx搜索 我的问题是如何使用PHP PDO查询Sphinx search的索引并从Mysql中提取数据?您需要两个PDO连接。一个是SphinxSearch服务器(sphinx谈论SphinxQL,它是与mysql兼容的二进制协议,因此与PDO配合使用)。另一个连接到Mysql服务器 通过SPhinx连接运行SphinxQL查询。获取ID列表 将该ID列表插入MySQL查询,以获取实际的行数据。使用IN(..)过滤器功能 可能
我的问题是如何使用PHP PDO查询Sphinx search的索引并从Mysql中提取数据?您需要两个PDO连接。一个是SphinxSearch服务器(sphinx谈论SphinxQL,它是与mysql兼容的二进制协议,因此与PDO配合使用)。另一个连接到Mysql服务器 通过SPhinx连接运行SphinxQL查询。获取ID列表 将该ID列表插入MySQL查询,以获取实际的行数据。使用IN(..)过滤器功能
- 可能有用
$dsn="mysql:host=127.0.0.1; dbname=test; charset=utf8;";
$username="member";
$password="";
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
$db=new PDO($dsn, $username, $password, $options);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$query=$db->prepare("
SELECT *
FROM test WHERE MATCH (name, location) AGAINST (:search IN BOOLEAN MODE)
LIMIT 0, 10
");
$query->bindValue(':search', $search, PDO::PARAM_STR);
$query->execute();
while($data=$query->fetch(PDO::FETCH_ASSOC)){
}