Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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 在MySQL中存储数组_Php_Mysql_Phpmyadmin - Fatal编程技术网

Php 在MySQL中存储数组

Php 在MySQL中存储数组,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我试图找出如何最好地将数组存储到可以从PHPMyAdmin操作的MySQL字段中 我们使用PHPMyAdmin将员工输入到MySQL数据库的一个表中,其中一列是state licensing。我们将评估他们在哪些州获得许可,以确定他们是否有资格在我们的CRM中通过POST接收分配给他们的特定潜在客户。我们将检查他们的状态许可是否与客户的状态以及一些其他参数相匹配,以确定我们是否应该向他们执行潜在客户分配(即配额阈值、活动会话、轮到他们了吗?…) 因此,员工#1在CA、CO和NJ获得许可,员工#2

我试图找出如何最好地将数组存储到可以从PHPMyAdmin操作的MySQL字段中

我们使用PHPMyAdmin将员工输入到MySQL数据库的一个表中,其中一列是state licensing。我们将评估他们在哪些州获得许可,以确定他们是否有资格在我们的CRM中通过POST接收分配给他们的特定潜在客户。我们将检查他们的状态许可是否与客户的状态以及一些其他参数相匹配,以确定我们是否应该向他们执行潜在客户分配(即配额阈值、活动会话、轮到他们了吗?…)

因此,员工#1在CA、CO和NJ获得许可,员工#2在CA、FL、TX和VA获得许可。如何在MySQL数据库中最好地表示这一点?我认为我们不希望将其序列化,因为有人将手动将州许可证输入数据库。我应该把它留着吗?最终,我将构建一个用于添加和删除员工的小界面,但PHPMyAdmin现在更易于使用,因为它已经构建好了


我想从数据库中提取字段,将州许可证放入一个数组中进行分析,然后从中做出决定。

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

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

如果必须将数组保存到单个字段中,则serialize()和unserialize()函数将起作用。但不能对实际内容执行查询

作为序列化函数的替代方法,还有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)
    )');

所以听起来我需要一个用户表和一个状态授权表,其中一个用户id将两者链接起来,然后只需将每个可能的状态许可证设置为一个表,如果它们在该状态下被授权,则将其标记为1,否则将不设为?然后,我可以通过查询找到用户ID,然后分析状态许可表中的用户是否有资格接收潜在客户。我想我正在着手解决不容易存储阵列的问题

用户表: userID | userName | userEmail 123 |内特|nate@domain.com

州许可表: 用户ID | AZ | CA | CO | NJ |或| VA
123 | 0 | 1 | 0 | 1 | 1 | 0

不要将其存储在单个列中;使用关系表。有你想要做的基本知识。希望它能有所帮助。我最终只是将其存储为逗号分隔的格式,并在查询时对其进行分解。