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

您可能还喜欢...

发表回复