How do I use sphinx search with PHP?(如何在PHP中使用狮身人面像搜索?)
本文介绍了如何在PHP中使用狮身人面像搜索?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我还是编程新手,请记住这一点。 我在Linux Mint上安装了SphinxSearch。我遵循了数字海洋教程中的说明。我创建了一个配置文件(sphinx.conf),如下所示:
source mySource{
type = mysql
sql_host = localhost
sql_user = root
sql_pass = mypass
sql_db = test
sql_query = SELECT id, uname FROM users
sql_attr_uint = id
sql_attr_string = uname
sql_port = 3306
}
index test{
source = mySource
path = /var/lib/sphinxsearch/data
docinfo = extern
}
searchd{
listen = 9306:mysql41
log = /var/log/sphinxsearch/searchd.log
query_log = /var/log/sphinxsearch/query.log
read_timeout = 5
pid_file = /var/run/sphinxsearch/searchd.pid
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
binlog_path = /var/lib/sphinxsearch/data
}
我的PHP文件
<?php
$conn = new mysqli('localhost','root','mypass','test',9306);
if($conn->connect_error){
die("Could not connect");
}else{
echo "You are connected!";
}
$query = $conn->query("SELECT * FROM test WHERE MATCH('hsmith')");
echo $query->error;
?>
PHP抛出错误,声明我正在使用"非对象"
有什么解决方案吗?我是不是做错了什么?
推荐答案
很可能问题出在
$conn = new mysqli('localhost','root','mypass','test',9306);
根据http://php.net/manual/en/mysqli.construct.php当您在第一个参数中传递‘localhost’时,mysqli尝试使用Unix套接字,而不是TCP套接字,因此端口号被忽略,即您可能连接到您的MySQL实例而不是sphinx,这将导致出现问题。
尝试:
$conn = new mysqli('127.0.0.1','','','test',9306);
相反。 还请注意
echo $query->error;
是错误的,因为Query()返回的mysqli_Result(http://php.net/manual/ru/class.mysqli-result.php)没有属性‘Error’,您的意思可能是
echo $conn->error;
这篇关于如何在PHP中使用狮身人面像搜索?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何在PHP中使用狮身人面像搜索?
基础教程推荐
猜你喜欢
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- 使用 PDO 转义列名 2021-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- HTTP 与 FTP 上传 2021-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- PHP 守护进程/worker 环境 2022-01-01