您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

将PHP数组保存到MySQL吗?

将PHP数组保存到MySQL吗?

没有 好的 方法可以将数组存储到单个字段中。

您需要检查您的关系数据并对模式进行适当的更改。请参阅下面的示例以获取对此方法的参考。

如果 必须 将数组保存到单个字段中,则serialize()andunserialize()函数可以解决问题。但是您不能对实际内容执行查询

作为序列化功能的替代方法,还有 json_encode()json_decode()

考虑以下数组

$a = array(
    1 => array(
        'a' => 1,
        'b' => 2,
        'c' => 3
    ),
    2 => array(
        'a' => 1,
        'b' => 2,
        'c' => 3
    ),
);

要将其保存在数据库中,您需要创建一个这样的表

$c = MysqL_connect($server, $username, $password);
MysqL_select_db('test');
$r = MysqL_query(
    'DROP TABLE IF EXISTS test');
$r = MysqL_query(
    'CREATE TABLE test (
      id INTEGER UNSIGNED NOT NULL,
      a INTEGER UNSIGNED NOT NULL,
      b INTEGER UNSIGNED NOT NULL,
      c INTEGER UNSIGNED NOT NULL,
      PRIMARY KEY (id)
    )');

要使用记录,您可以执行诸如此类的查询(是的,请注意,请注意!)

function gettest() {
    $ret = array();
    $c = connect();
    $query = 'SELECT * FROM test';
    $r = MysqL_query($query,$c);
    while ($o = MysqL_fetch_array($r,MysqL_ASSOC)) {
        $ret[array_shift($o)] = $o;
    }
    MysqL_close($c);
    return $ret;
}
function putTest($t) {
    $c = connect();
    foreach ($t as $k => $v) {
        $query = "INSERT INTO test (id,".
                implode(',',array_keys($v)).
                ") VALUES ($k,".
                implode(',',$v).
            ")";
        $r = MysqL_query($query,$c);
    }
    MysqL_close($c);
}

putTest($a);
$b = gettest();

connect()函数返回一个MysqL连接资源

function connect() {
    $c = MysqL_connect($server, $username, $password);
    MysqL_select_db('test');
    return $c;
}
php 2022/1/1 18:13:47 有573人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶