$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)){
}
我有一个使用PDO进行全文搜索的mysql查询,我目前正在安装sphinx搜索。
我的问题是如何通过使用PHP PDO查询Sphinx搜索索引并从Mysql中获取数据?
答案 0 :(得分:2)
您需要两个PDO连接。一个到SphinxSearch Server(sphinx会说SphinxQL,它是与mysql兼容的二进制协议,因此适用于PDO)。另一个是Mysql Server。
通过SPhinx onnections运行SphinxQL查询。获取ID列表。
将id列表插入MySQL查询 - 以获取实际的行数据。使用IN(..)过滤功能。