用PHP将一个数组存到数据库的一个字段的方法

要把数一个数组,存到数据库的一个字段中,有两种方法,一种是用序列化函数serialize($arr);还有一种是用php的json扩展自带的函数json_encode($arr);如果json_encode对含有中文的字符进行编码时,会自动转换成unicode编码。就像这样:a:2:{s:4:”code”;s:1:”1″;s:3:”msg”;s:9:”PHP日志”;},虽然js上能正常处理,但是看起来还是不那爽,在PHP的官方网站上面找到一个函数,可以解决这个问题,也就是将数据转换json,而且中文不会被转换为unicode码。

 代码如下 复制代码
<?php
function php2js($a=false)
{
  if (is_null($a)) return 'null';
  if ($a === false) return 'false';
  if ($a === true) return 'true';
  if (is_scalar($a))
  {
    if (is_float($a))
    {
      // Always use "." for floats.
      $a = str_replace(",", ".", strval($a));
    }

    // All scalars are converted to strings to avoid indeterminism.
    // PHP's "1" and 1 are equal for all PHP operators, but
    // JS's "1" and 1 are not. So if we pass "1" or 1 from the PHP backend,
    // we should get the same result in the JS frontend (string).
    // Character replacements for JSON.
    static $jsonReplaces = array(array("", "/", "n", "t", "r", "b", "f", '"'),
    array('\', '/', 'n', 't', 'r', 'b', 'f', '"'));
    return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';
  }
  $isList = true;
  for ($i = 0, reset($a); $i < count($a); $i++, next($a))
  {
    if (key($a) !== $i)
    {
      $isList = false;
      break;
    }
  }
  $result = array();
  if ($isList)
  {
    foreach ($a as $v) $result[] = php2js($v);
    return '[ ' . join(', ', $result) . ' ]';
  }
  else
  {
    foreach ($a as $k => $v) $result[] = php2js($k).': '.php2js($v);
    return '{ ' . join(', ', $result) . ' }';
  }
}
?>

使用方法一:

echo serialize(array(‘code’=>’1′,’msg’=>’PHP日志’));
输出:a:2:{s:4:”code”;s:1:”1″;s:3:”msg”;s:9:”PHP日志”;}

使用方法二:

echo json_encode(array(‘code’=>’1′,’msg’=>’PHP日志’));
输出:{“code”:”1″,”msg”:”PHPu65e5u5fd7″}

使用方法三:

echo php2js(array(‘code’=>’1′,’msg’=>’未知错误’));
输出:{ “code”: “1”, “msg”: “PHP日志” }

时间: 2024-07-31 10:07:02

用PHP将一个数组存到数据库的一个字段的方法的相关文章

JavaScript将一个数组插入到另一个数组的方法

 这篇文章主要介绍了JavaScript将一个数组插入到另一个数组的方法,涉及javascript中Array.prototype.push.apply方法的使用技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了JavaScript将一个数组插入到另一个数组的方法.分享给大家供大家参考.具体分析如下: 这段JS代码可以通过Array.prototype.push.apply方法将一个数组插入到另外一个数组,下面的代码将数组b插入到a ? 1 2 3 4 var a = [4,5

在C#里怎么样将一个二进制文件存到数据库里,然后再取出来?

问题描述 在C#里怎么样将一个二进制文件存到数据库里,然后再取出来? 解决方案 解决方案二:以Access为例:将字段设置为OLE对象.然后:privatevoidSaveFile(){Form1frm=newForm1();FileStreamfilestream=newFileStream(Application.StartupPath+"\a.txt",FileMode.Open,FileAccess.Read);BinaryReaderfilerd=newBinaryReade

JavaScript将一个数组插入到另一个数组的方法_javascript技巧

本文实例讲述了JavaScript将一个数组插入到另一个数组的方法.分享给大家供大家参考.具体分析如下: 这段JS代码可以通过Array.prototype.push.apply方法将一个数组插入到另外一个数组,下面的代码将数组b插入到a var a = [4,5,6]; var b = [7,8,9]; Array.prototype.push.apply(a, b); uneval(a); // is: [4, 5, 6, 7, 8, 9] 希望本文所述对大家的javascript程序设计有

asp中利用数组实现数据库记录的批量录入方法

数据|数据库|数组 asp中利用数组实现数据库记录的批量录入方法(原创) 演示:http://www.zwtd.com/1/yanek/n/needdj2.asp <% rem 文章题目 asp中利用数组实现数据库记录的批量录入方法(原创)作者:yanek联系email:aspboy@263.net%> 包括两个文件 1.allneeddj.asp:实现表单的生成 2. allneeddjresult.asp 处理表单批量录入 3.hbedu.mdb :数据库文件 其数据库结构如下 provi

asp中利用数组实现数据库记录的批量录入方法(原创),有演示,建议入精华

精华|数据|数据库|数组|原创 asp中利用数组实现数据库记录的批量录入方法(原创)演示:http://www.zwtd.com/1/yanek/n/needdj2.asp<%rem 文章题目 asp中利用数组实现数据库记录的批量录入方法(原创)作者:yanek联系email:aspboy@263.net%> 包括两个文件1.allneeddj.asp:实现表单的生成2. allneeddjresult.asp 处理表单批量录入3.hbedu.mdb :数据库文件其数据库结构如下provinc

easyUI中将三个输入框的数据顺序拼接在一起存入数据库形成一个字段

问题描述 easyUI中将三个输入框的数据顺序拼接在一起存入数据库形成一个字段 将三个输入框的内容按顺序拼接在一起形成一个字段该如何实现,例如这项数据的年份是可选的,2015年高考语文,期中2015是用下拉列表实现选择的,语文也是下拉列表实现的,最后存储到数据库中是一条数据,就是2015年高考语文 解决方案 循环遍历,拼接字符串,中间加上逗号. 解决方案二: 为了以后方便取值,你可以随便加一些符号分隔开,比如逗号或者问号什么的,这样以后取出来按这个符号split一下就又得到三个字段了 解决方案三

php编程-怎样能时时监控数据库中一个字段的值并在小于某个数后发出报警

问题描述 怎样能时时监控数据库中一个字段的值并在小于某个数后发出报警 怎样能时时监控数据库中一个字段的值并在小于某个数后发出报警,比如传感器监测温度后会存入数据库,如果web管理后台监测到温度太高,就播放报警音乐.我用刷新页面来做,但是感觉不是那么回事啊,求指教

asp.net-三级省市联动JS能把它存成一条地址么?就是数据库里一个字段?

问题描述 三级省市联动JS能把它存成一条地址么?就是数据库里一个字段? aspx注册信息页,联系地址与原来是设计了TEXTBOX,所以数据库只有一个联系地址字段, 现在想改成三级省市的联动选择,还能存进一个字段吗? 解决方案 存的时候可以用特定字符分隔字符串,从数据库取出后通过分割处理 解决方案二: 你如果只是存更简单了,把三级里面字符串拼在一起寸不就行了 解决方案三: 建议楼主还是增加字段吧,这样简单的拼接,对以后的统计会埋下隐患的. 解决方案四: 保存最小单位的id,增加多级代码表 解决方案

如何表达数据库里一个字段的所有集合

问题描述 stringval="select*frominformationwhere姓名='"+tbxUserName.Text+"'and密码='"+tbxPassword.Text+"'";DataTabledt=newDataTable();SqlDataAdapterda=newSqlDataAdapter(val,Sqlconn);da.Fill(dt);if(dt.Rows.Count>0){Session["use