Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于PDO的Sphinx搜索查询_Php_Mysql_Pdo_Sphinx - Fatal编程技术网

Php 基于PDO的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(..)过滤器功能 可能

我有一个使用PDO进行全文搜索的mysql查询,我目前安装了sphinx搜索


我的问题是如何使用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)){

}