MySQL / MariaDB 不接受 JSON 格式?无法创建数据库

2023-11-30

我目前在 phpmyadmin 上使用 XAMPP/Apache 和 MariaDB。 我正在尝试使用 Doctrine 创建一个基于我的代码的表,因此使用注释来验证表单。我只想将表单中输入的值存储在数据库中。 在另一个例子中,这工作得很好。

但现在我有一个“复选框字段”,我猜它在创建数据库时会造成某种麻烦。

我在控制台中使用这些命令:

php bin/console make:migration

然后:

php bin/console doctrine:migrations:migrate

当调用第二个时=当我尝试在数据库中创建表时,出现以下错误:

Migration 20181121103017 failed during Execution. 
Error An exception occurred while executing 'CREATE TABLE pizza (id INT 
AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, address VARCHAR(255) NOT NULL
phone VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, 
size INT NOT NULL, ingredient JSON NOT NULL COMMENT '(DC2Type:json_array)', delivery INT NOT NULL, 
PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB':


SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in 
your SQL syntax; check the manual that
corresponds to your MariaDB server version for the right syntax to use near 
'JSON NOT NULL COMMENT '(DC2Type:json_
array)', delivery INT NOT NULL, PRIMARY KEY' at line 1

我现在真的不知道我做错了什么。

这些是我在“Pizza.php”文件中的注释。

// ------------------

/**
 * @Assert\NotBlank(
 *     message = "E-Mail Address required"
 * )
 * @Assert\Email(
 *     message = "The email '{{ value }}' is not a valid email."
 * )
 * @Assert\Length(min="2", max="255")
 * @ORM\Column(type="string", length=255)
 */

protected $email;

// ------------------

/**
 * @Assert\Range(min=0, max=3)
 * @ORM\Column(type="integer")
 */

protected $size;

// ------------------

/**
 *@Assert\NotBlank(
 *     message = "Choose at least 1 ingredient!"
 * )
 * @ORM\Column(type="array")
 */

protected $ingredient;

// ------------------

/**
 * @Assert\NotBlank(
 *     message = "Choose a delivery option!"
 * )
 * @Assert\Range(min=0, max=1)
 * @ORM\Column(type="integer")
 */

protected $delivery;

表单本身工作得很好,验证确实按照我的预期方式工作。

我到底做错了什么?

如果您需要我的“Pizza.php”(实体类)或我进行路由的控制器文件中的更多代码,请告诉我。

我很感激任何帮助!


根据您的评论,Doctrine 似乎认为它可以使用您的 mariadb 版本上不可用的功能。

如果您告诉学说您正在使用哪个版本,它将为该列选择正确的数据类型,在这种情况下可能LONGTEXT或类似的东西。

根据您使用的内容,它看起来像这样(例如,在 symfony 中使用 yaml 文件):

doctrine:
    dbal:
        server_version: '10.1'

请注意,您需要重新生成迁移。

就像我在评论中提到的那样,我个人会标准化数据库并使用不同的表将披萨链接到成分,以便更轻松地搜索和过滤。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL / MariaDB 不接受 JSON 格式?无法创建数据库 的相关文章

  • mysql变量赋值:如何强制赋值顺序?

    由于mysql是一种声明性语言 我找不到强制赋值变量顺序的方法 采取这个查询 SET v1 0 SET v2 0 SELECT v1 v2 FROM MyTable table WHERE v1 v2 is not null AND v2
  • 如何在Web服务中传递URL

    我想将此 URL 作为网址中的值传递http localhost h2orn php verify php email emails hash hash但是 我只能在 符号之前传递 我想传递所有 URL 我正在使用java网络服务 代码在这
  • 如何在 Laravel 5.5 中编辑“页面因不活动而已过期”的视图

    在 Laravel 5 5 中 当您使用 CSRF 保护 默认情况下 并且在长时间不活动后发送发布请求时 您将收到此错误页面 屏幕截图 我对此错误表示同意 但是 我需要更改此错误的视图 文本以确保与我的应用程序风格和语言相匹配 关于如何编辑
  • 为什么我应该使用 $_GET 和 $_POST 而不是 $_REQUEST? [复制]

    这个问题在这里已经有答案了 除此之外 REQUEST从 cookie 读取 有什么理由我应该使用 GET and POST代替 REQUEST 这样做的理论和实践理由是什么 当我只想让用户的某些数据返回某些数据时 我使用 REQUEST 当
  • Laravel 5 与 SAML 2 和现有 IDP 集成

    我使用 Laravel 5 我正在尝试将 SAML 2 0 与其集成 我找到了这个包 https github com aacotroneo laravel saml2 https github com aacotroneo laravel
  • FPDF - 内嵌粗体文本

    我正在尝试从 PHP 创建 PDF 出于法律原因 我们需要将免责声明的一部分设为粗体 并且需要概述免责声明 我当前的代码使用 if isset POST optout POST optout yes pdf gt Ln 5 pdf gt S
  • 如何让MySQL数据库完全在内存中运行?

    我注意到我的数据库服务器支持内存数据库引擎 我想让一个已经运行 InnoDB 的数据库完全在内存中运行以提高性能 我怎么做 我探索了 PHPMyAdmin 但找不到 更改引擎 功能 假设您了解注释中提到的使用 MEMORY 引擎的后果 并且
  • WHERE 子句或 ON 子句中的 INNER JOIN 条件?

    我今天输错了一个查询 但它仍然有效并给出了预期的结果 我的意思是运行这个查询 SELECT e id FROM employees e JOIN users u ON u email e email WHERE u id 139840 但我
  • WooCommerce:用文本覆盖购物车价格

    我们有很多产品具有以下功能 No price 零价格 我们让它们可以通过内置挂钩购买 但购物车仍然将它们显示为具有0 price结账时 我们希望购物车和结帐摘要显示 特殊订单 或任何其他文本 但 WooCommerce 似乎使基于文本的价格
  • PHP header() 和 jquery mobile

    我想使用 php header Location newpage php 进行重定向 我没有收到错误 但 Jquery mobile 似乎无法加载目标页面 并且地址栏仍保留旧地址 请问您有什么建议吗 Thanks 尝试添加data ajax
  • URL 重写帮助

    RewriteEngine on RewriteCond REQUEST URI index php RewriteRule index php q 1 L 这应该将任何 url 重写为 index php q url 并且它可以工作 反正
  • ON DUPLICATE KEY UPDATE 的自动增量过多

    我有一个包含列的基本表 id 主要是AI 名称 唯一 etc 如果唯一列不存在 则插入该行 否则更新该行 INSERT INTO pages name etc VALUES bob randomness ON DUPLICATE KEY U
  • 左连接 SQL 求和

    我有两张桌子想要加入 比如说表 a 和表 b 表 b 有许多行指向表 a 表 b 包含价格 实际上是一个购物篮 所以我想要的是表a中的所有记录和表b中的价格之和 我努力了 select a sum b ach sell from booki
  • 如何使用 PDO 动态构建查询

    我正在使用 PDO 并想做这样的事情 query dbh gt prepare SELECT FROM table WHERE column value query gt bindParam table tableName query gt
  • 从多个选择列表中插入数据到mysql数据库(html形式)

    我制作了一个表格 其中有商店的 ID
  • sqlsrv_num_rows 不返回任何值

    我正在尝试获取查询中返回的行数 while 循环遍历结果有效 但由于某种原因 sqlsrv num rows 不返回任何值 result SELECT from dtable WHERE id2 apple query sqlsrv que
  • PHP 中的嵌套 JSON 输出

    我正在为 iOS 应用程序构建 API 并尝试将 mySQL 数据转换为 JSON 字符串进行处理 所需的输出将需要顶级订单详细信息 例如客户名称和地址 然后是订购的产品子数组 我需要的两个表中有相当多的字段 我希望拥有所有字段 我已经构建
  • Laravel 5 注销特定用户

    在我的 laravel 5 应用程序中 有一个功能允许具有管理员角色的用户重置非管理员的任何人的密码 但这不会强制该人注销并再次登录 更改密码后如何强制用户注销 我没有对用于验证用户身份或任何内容的中间件进行任何更改 我不知道它是否有效 但
  • 处理查询字符串参数时 Codeigniter 缓存问题

    问候 我正在编写一个 CI Web 应用程序 它实现标准文件缓存功能 如下所示 this gt output gt cache n 我使用了段和查询字符串参数的组合 因此似乎遇到了问题 我在用例和输出类代码中看到的是 缓存仅基于段 像这样
  • PHP 中的 Zip 流

    我有一个 PHP 脚本 可以动态创建 zip 文件并强制浏览器下载该 zip 文件 问题是 我可以直接将zip文件写入连接到用户浏览器的输出流 而不是先将其保存为服务器上的真实文件 然后发送文件吗 提前致谢 如果您的 Web 服务器运行的是

随机推荐

  • 如何使用pcap_breakloop?

    我在另一个函数中有一个 pcap loop 函数 用于捕获数据包 直到用户停止它 即 void functionA signal SIGINT terminate process pcap loop handle 1 callback NU
  • 如何在Windows下用Python将表情符号渲染为图像?

    我的目标是生成 在 Windows 下的 Python 中 渲染任何 unicode 字符的位图图像 尤其包括表情符号 我已经安装了几种表情符号友好的字体 包括Symbola 用于测试目的 到目前为止 我已经尝试过 PIL matplotl
  • 包括正确的内在标头

    我一直在阅读关于哪个头文件更适合访问英特尔的内在函数的意见 x86intrin h or immintrin h 两者似乎都达到了相同的结果 但我确信在代码可移植性方面一定存在一些细微的差异 也许其中一个比另一个更常见或更完整 我找不到对其
  • 在 jQuery 的 data() 方法中使用函数更新值设置的变量相当于匿名函数,而不是返回值

    我回答了这个问题 使用 jQuery 操作自定义值 使用这个 jQuery img attr u function i u i is the index of the current image among all the images r
  • 为什么 ASP.NET Web API 只允许 POST 方法使用一个参数?

    我是 ASP NET Web API 的新手 我发现它有一个非常烦人的限制 post方法只支持一个参数 在这里阅读更多内容 使用 jQuery 将 FromBody 参数 POST 到 Web API 从那个链接来看 他们似乎是这样设计的
  • 查询计算工资的累计和总 SUM

    Name Location Salary smith newyork 6000 adam dallas 5000 rams delhi 7000 scott laondon 4000 输出应该是这样的 Name Location Salar
  • 您推荐使用哪些工具来为 Powershell 脚本构建 UI [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 从头开始为 PowerShell 脚本创建 GUI 的最佳工具是什么 该脚本可能包含多个功能 因此需要链接到每个功能的多个按钮 还需要有一个输出区域来显示操作结果 PowerSh
  • 如何提取单元格字符串中的六位数字?

    我有一列数据 纽约真不错 456983 美食北京真棒678932 文化不错 等等 我想提取六位数字并将其放置在原始列旁边的列中 有 n 行 有没有办法不用VBA 用公式来做到这一点 如果没有 VBA 您可以使用以下 Excel 公式 假设
  • 文字字符串和函数返回值是左值还是右值?

    只是想知道文字字符串是左值还是右值 其他文字 如 int float char 等 是左值还是右值 函数的返回值是左值还是右值 你如何区分 字符串文字是左值 但您无法更改它们 右值 但如果它是指针且非 NULL 则它指向的对象是左值 C 标
  • sizeof(array)/sizeof(array[0]) 有什么问题吗?

    我的一位同事最近表示 上述语句不是类型安全的 我应该使用其他内容 因为您需要尽可能多的类型安全结构来减少可能的错误数量 虽然我同意类型安全 但我有点困惑 因为这是有问题的代码类型 仅修改了 data 的内容和长度 unsigned char
  • 如何使用 PyDrive 访问团队云端硬盘而不是个人 Google 云端硬盘?

    我正在尝试使用 PyDrive 以编程方式列出然后下载存储在团队驱动器上的文件 我可以在浏览器中访问这些文件 当我这样做时 from pydrive auth import GoogleAuth from pydrive drive imp
  • 是否允许复制指针并在副本上调用删除?

    如果我复制一个指针 然后要求删除指向的分配 这是有效的 C 还是未定义的行为 char orig new char 100 char copy orig delete copy 这是完全有效的 您正在取消分配在第一行分配的数组 请注意 复制
  • 具有自动存储期限的变量的地址可以在其定义中取吗?

    是否允许在其定义的右侧获取对象的地址 如发生在foo below typedef struct char x 100 chars chars make void p printf p p n p chars c return c void
  • javascript 中 setInterval 函数的闭包

    如何使用setInterval不使用全局变量 我更喜欢将 setInerval 调用的函数的所有变量包装在某种闭包中 如下所示 var wrap function f var local1 local2 return function re
  • Jetpack 撰写 Canvas Arch 额外行程

    我在 jetpack compose 中使用画布来绘制由多个拱门形成的圆圈 为了让拱门看起来更好 我将帽子设置为圆形 style Stroke width chartBarWidth toPx cap StrokeCap Round The
  • Android Spinner:选择同一项目时不会调用 onItemSelected 侦听器

    我需要出示AlertDialog当选择第 2 项时Spinner 我知道使用onItemSelected我们可以聆听微调器的选择并显示弹出窗口 问题是当我选择第二个项目时 会出现对话框 但关闭对话框后 然后再次选择相同的项目 它不会将对话框
  • 在 Thymeleaf 中创建下拉菜单和表单

    我想创建一个下拉菜单 允许客户端通过下拉菜单中指定的字段搜索用户 例如 按州搜索 按城市搜索等 这是我到目前为止所拥有的 p Search options p
  • Swift 3 for 循环增量

    如何在 Swift3 中编写以下内容 for f first f lt last f interval n 1 这是我自己的尝试 for in 0 stride to last by interval n 1 斯威夫特 2 2 gt 3 0
  • 如何以编程方式暂停 NSTimer?

    我正在使用 NSTimer 在基于 OpenGL 的 iPhone 应用程序中进行一些渲染 我有一个弹出并请求用户输入的模式对话框 当用户提供输入时 我想 暂停 即如下所示 myNSTimer pause 我使用这种语法是因为我一直在做类似
  • MySQL / MariaDB 不接受 JSON 格式?无法创建数据库

    我目前在 phpmyadmin 上使用 XAMPP Apache 和 MariaDB 我正在尝试使用 Doctrine 创建一个基于我的代码的表 因此使用注释来验证表单 我只想将表单中输入的值存储在数据库中 在另一个例子中 这工作得很好 但