Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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 json上有或在哪里?_Php_Mysql_Json_Codeigniter - Fatal编程技术网

Php json上有或在哪里?

Php json上有或在哪里?,php,mysql,json,codeigniter,Php,Mysql,Json,Codeigniter,我想用json\u encode对存储在数据库中的json值进行“拥有”,这个值是波斯语单词,但没有进行“拥有”,如何修复它 行为: 行id 1:[“全部5”,“\u0648\u06cc\u0632\u0627 8”] 行id 2:[“全部5”,“\u0648\u06cc\u0632\u0627 7”] 行id 3:[“全部5”,“\u0648\u06cc\u0632\u0627 6”] 这是我的php代码:(输出它是:没有) $val='; $query=$this->db->query('S

我想用
json\u encode
对存储在数据库中的json值进行“拥有”,这个值是波斯语单词,但没有进行“拥有”,如何修复它

为:
id 1:
[“全部5”,“\u0648\u06cc\u0632\u0627 8”]

id 2:
[“全部5”,“\u0648\u06cc\u0632\u0627 7”]

id 3:
[“全部5”,“\u0648\u06cc\u0632\u0627 6”]

这是我的php代码:(输出它是:没有

$val=';
$query=$this->db->query('SELECT*来自行为“%”.$val.“%”的表);
如果($query->num\u rows()>0){
foreach($query->result()作为$val){
echo$val->name.“
”; } }否则{ 呼应‘没有’; }
更新: Can where值“$val”,即数据库中带有json值的数字或拉丁语单词,但不能用于波斯语单词

例如,下面的代码有输出,并且是$query->num_rows()=3

$val='All5';
$query=$this->db->query('SELECT*来自行为“%”.$val.“%”的表);
如果($query->num\u rows()>0){
foreach($query->result()作为$val){
echo$val->name.“
”; } }否则{ 呼应‘没有’; }
您已将json字符串存储到数据库中。这样做只是将文本存储到数据库中

SQL是一种查询(或更多)数据库的语言,例如从数据库中选择文本字段

但是SQL不了解json,特别是LIKE关键字无法解析json,然后在其上应用它的常规、基于文本的模式匹配

您需要以纯文本(跨多列)存储数据,或者需要查询所有字段,然后使用PHP搜索数据

第三种选择是扩展数据库服务器以理解json,并提供一个函数,允许您搜索类似于LIKE的json编码数据


然而,事实上,您刚刚在数据库中创建了一个数据库,它的价格与您现在面临的选择所需数据的问题类似。

亲爱的,您的问题不明确。我们无法理解实际的问题是什么?请尽量详细说明您的问题和问题您的数据库代码页/排序规则是什么?@user973254-collation=>utf8\u general\u ci,codepage???
显示变量,如“%char%@user973254-我不明白你的目的!!!?这个值是chackbox,其中值json作为数字或拉丁单词为true,但对波斯语单词不起作用。你有什么切实可行的建议?请用代码给我举个例子。谢谢
$val   = 'ویزا 8';
$query = $this->db->query('SELECT * FROM table HAVING row_s LIKE "%' . $val . '%"');
if ($query->num_rows() > 0) {
    foreach ($query->result() as $val) {
        echo $val->name . '<br>';
    }
} else {
    echo 'There is not';
}
$val   = 'All5';
$query = $this->db->query('SELECT * FROM table HAVING row_s LIKE "%' . $val . '%"');
if ($query->num_rows() > 0) {
    foreach ($query->result() as $val) {
        echo $val->name . '<br>';
    }
} else {
    echo 'There is not';
}