php mysql使用like模糊搜索json的数据, php后端连接MySQL数据库并返回json结果, Php如何返回json数据, PHP+实现多个关键词搜索查询功能
php mysql使用like模糊搜索json的数据
$text = $data['text'];//leyangjun
//$text = preg_replace("/\s/", "", $text);
if (!empty($text)) {
$json_text = str_replace("\\", "_", json_encode($text));
$json_text = strval($json_text);
$mSql .= " AND field_content like '%" . $json_text . "%' ";
}
————————————————
版权声明:本文为CSDN博主「乐杨俊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/leyangjun/article/details/80447402
php后端连接MySQL数据库并返回json结果
$conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
//$conn创建一个连接数据库变量
//mysqli的参数为(数据库地址,数据库用户名,数据库密码,数据库名)
if ($conn->connect_error) {
die("连接失败,错误:" . $conn->connect_error);
}
//如果出现问题运行die()函数输出一条消息,并退出当前脚本
$sql = " /*查询语句*/ ";//定义查询语句
$result = $conn->query($sql);//进行查询并且把结果写入$result
$conn->close(); //完成之后断开连接
//sql数据处理
$arr = [];//定义一个空数组
while ($row = $result->fetch_assoc()) {
$arr[] = $row;//添加每条数据成为数组的每一行
}
//转化成json并返回json数据
exit(json_encode($arr));
值得注意的地方
- 如果前端和后端分开放要注意跨域问题 如何使php后端API跨域
- 连接查询部分可以放进try代码内,防止脚本出错
try {
//查询和接收并断开
$sql = " /*查询语句*/ " . $postid;
$result = $conn->query($sql);
$conn->close();
} catch (Exception $e) {
die("查询错误");
}
参考 https://blog.csdn.net/swq404/article/details/119109602?
Php如何返回json数据
php返回json,xml,JSONP等格式的数据
返回json数据:
header(‘Content-Type:application/json; charset=utf-8’);
$arr = array(‘a’=>1,’b’=>2);
exit(json_encode($data));
注意:如果不加header直接输出json_encode的值的话,返回的是字符串不是对象,js那边就需要先eval(‘(‘+data+’)’)转化为对象,在取值
返回xml数据:
header(‘Content-Type:text/xml; charset=utf-8’);
exit($xml);
返回jsonp数据:
$arr = array(‘a’=>1, ‘b’=>2, ‘c’=>3);
$json = json_encode($arr);
$callback = $_GET[‘callback’];
exit($callback.”($json)”);
//注意callback是js传过来的参数名称
thinkphp如何返回各种数据:
$this->ajaxReturn (json_encode($arr),’JSON’);
$this->ajaxReturn (json_encode($arr),’JSONP’);
$this->ajaxReturn (json_encode($arr),’XML’);
json_encode有个参数禁止unicode编码
JSON_UNESCAPED_UNICODE
json_encode(‘中文’,JSON_UNESCAPED_UNICODE);
默认中文编码
header(‘Content-Type:application/json; charset=gbk’);
$data = $db->select($sql);
$data = json_encode($data);
$data=preg_replace(“#\\\u([0-9a-f]{4})#ie”, “iconv(‘UCS-2BE’, ‘gbk’, pack(‘H4’, ‘\\1’))”, $data);
exit($data);
参考 https://blog.csdn.net/weixin_33858485/article/details/86001174?op
PHP+实现多个关键词搜索查询功能
PHP搜索主要通过使用SQL语句中的like子句来实现。如果同时搜索多个关键词,可以使用union子句来将搜索结果合并起来。
代码示例:
//分解用户输入的多个关键词,存入$result数组
$result = explode('','',$_GET['key']);
$mysql_server="localhost";
$mysql_username="数据库用户名";
$mysql_password="数据库密码";
$database_conn="数据库名";
//建立数据库链接
$conn = mysql_connect($mysql_server,$mysql_username,$mysql_password);
//选择某个数据库
mysql_select_db($database_conn, $conn);
//根据多个关键词构建SQL语句
$query_rs = "SELECT * FROM (";
//根据每个搜索关键词构建SQL语句
for($i=0;$i<count($result);$i++)
{
//对第一个关键词,不使用UNION
if($i==0)
{
$query_rs .= "SELECT * FROM searchtable WHERE title LIKE ''%$result[0]%''OR content LIKE ''%$result[0]%''";
}else{
//对其他关键词,使用UNION连接
$query_rs .= " UNION SELECT * FROM searchtable WHERE title LIKE''%$result[$i]%'' OR content LIKE ''%$result[$i]%''";
}
//对搜索结果排序
$query_rs .= ") T ORDER BY last_access DESC";
//执行SQL语句
$rs = mysql_query($query_rs, $conn) or die(mysql_error());
$row_rs = mysql_fetch_assoc($rs);
$totalRows_rs = mysql_num_rows($rs);
}
参考 https://blog.csdn.net/lcw2007101/article/details/125721526?ops