首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Mysql插入集类型

Mysql插入集类型
EN

Stack Overflow用户
提问于 2017-05-27 22:02:56
回答 2查看 1.4K关注 0票数 1

对不起,我的英语不是我的母语。我已经创建了一个用户界面来向MySQL插入数据。除了一件事之外,一切都是可以的,但是当我想从多个复选框中读取数据并将它们写到MySQL中设置类型时,它就是不起作用。我试图找到答案,但4个小时后,我找不到它,或者我不明白它。

http://jyxo.info/uploads/21/21b104df77f6ca723bb708d8d0549af5430e8e91.jpg

dobaVyskytu是固定类型的,有一个月你可以找到蘑菇(我的天呐是在线蘑菇地图集)

在用户界面有12个月的12个复选框。

http://jyxo.info/uploads/FD/fd548760b155307dfa677ada7c4be4996abf7b93.png

在dobavyskytu中,我需要多个选择,这就是我使用$doba +=的原因。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if(isset($_POST["Leden"]))
{
    $doba += "Leden";
}

if(isset($_POST["Únor"]))
{
    $doba += "Únor";
}

if(isset($_POST["Březen"]))
{
    $doba += "Březen";
}


Db::query("INSERT INTO houby(nazev,dobaVyskytu,mistoVyskytu,popis,jedovatost,img)VALUES(?,?,?,?,?,?)",$nazev,$doba,$misto,$popis,$jedovatost,$foto);

感谢大家的阅读和帮助,因为它现在起作用了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-27 22:21:25

对于PHP中的字符串,它使用.作为连接,而不是+,因此

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$doba .= "Leden";

编辑:要想更好地做到这一点,你应该尝试一下.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$options = [];
if(isset($_POST["Leden"]))
{
    $options[] = "Leden";
}

if(isset($_POST["Únor"]))
{
    $options[] = "Únor";
}
...
$doba = implode(',', $options);

因为这会给你一些类似于Leden,Únor的东西

票数 1
EN

Stack Overflow用户

发布于 2017-05-27 23:11:32

我的假设是:

  • $doba是您想要在SET类型列中插入的变量(我翻译了它,在您的问题中作为例子的值似乎是斯洛伐克语,用于“一月”、“二月”、“三月”--我想还有更多)。
  • 我假设您的SET类型列是"dobaVyskytu“,并且通过在列定义中包含所有可能的值,您在MySQL中正确地创建了它。

(你的问题更新似乎证实了我的假设!)

首先,当您想在MySQL中的SET类型列中插入多个值时,字符串值必须用逗号分隔。

使用我看到的代码,您可以得到字符串“Ledenřezen”(我认为您使用+=进行字符串连接,但是您应该像Nigel Ren提到的那样使用.= )。如果您显示的所有3个值都在您的表单中被选中,那么您确实希望得到一个字符串,如"Leden,nor,Březen“。

有关如何在MySQL:https://dev.mysql.com/doc/refman/5.7/en/set.html中处理SET类型,请参见此处

由于您不知道该列的值是0还是多个值,所以我建议将$doba设置为数组。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$doba = array(); // depending on your PHP version, you can also write $doba = [];

之后,您可以以这种方式添加值(语法$array[] = ' value‘将为数组附加一个值):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$doba[] = "Leden";
$doba[] = "Únor";
$doba[] = "Březen";

然后,在插入数组之前,可以将数组转换为字符串,并以逗号分隔值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$csvDoba = implode(',', $doba);

然后在Db::$doba ()行中使用$doba而不是$doba。

在完成这项工作之后,您可以找到更多可以改进代码的内容:

  • 您还可以利用PHP的魔力,将表单复选框命名为特殊名称,以避免重复。 例如,您可以将所有复选框命名为"doba[]",如果(isset($_POST"doba") ),它将已经是一个包含所有选中值的数组!但是要小心,如果没有检查值,它就不会被设置。这样,您将避免对每个复选框执行if条件。 您可以在代码中执行类似的操作来检索值: $doba =isset($_‘)?(数组)$_POST‘’doba‘:array(); 这个能做什么? 如果选中了任何名为"doba[]“的复选框,那么您将检索它们,并确保您检索的值是数组类型,即使值不是数组(例如,错误或有人试图黑掉您的表单),”(数组)“部分也将是数组。否则,您将返回一个空数组(因为没有选择)。 如果您不熟悉这个语法,请搜索“三元操作符”。
  • 当然,如果尚未完成,您将希望对您的值进行一些验证。
  • 您可能会将这些值放在另一个表中,而不是使用"SET type",但这取决于您,在这里您可能还有一些东西需要学习,所以我不想给您带来太多的信息。;-)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44224328

复制
相关文章
性能测试中的重要指标:响应时间、并发数和每秒事务数
时间(Response Time)、并发数(Concurrency)和每秒事务数(Transactions Per Second,TPS)都是非常重要的指标。这三个指标为我们提供了系统在特定负载下表现的深入理解。那么,这些指标是什么意思,又如何影响我们的系统呢?我们将在这篇文章中进行深入探讨。
运维开发王义杰
2023/08/10
3.8K0
性能测试中的重要指标:响应时间、并发数和每秒事务数
Python中如何求列表list的平均数[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/127125.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/25
2.2K0
MySQL 每秒 570000 的写入,如何实现?
一个朋友接到一个需求,从大数据平台收到一个数据写入在20亿+,需要快速地加载到MySQL中,供第二天业务展示使用。
数据和云01
2019/07/10
1.6K0
MySQL 每秒 570000 的写入,如何实现?
一个朋友接到一个需求,从大数据平台收到一个数据写入在20亿+,需要快速地加载到MySQL中,供第二天业务展示使用。
SQL数据库开发
2024/04/24
1960
MySQL 每秒 570000 的写入,如何实现?
MySQL 每秒 570000 的写入,如何实现?
一个朋友接到一个需求,从大数据平台收到一个数据写入在20亿+,需要快速地加载到MySQL中,供第二天业务展示使用。
数据和云
2019/07/15
2.4K0
MySQL 每秒 570000 的写入,如何实现?
MySQL 每秒 570000 的写入,如何实现?
一个朋友接到一个需求,从大数据平台收到一个数据写入在20亿+,需要快速地加载到MySQL中,供第二天业务展示使用。
芋道源码
2019/03/08
1.5K0
MySQL 每秒 570000 的写入,如何实现?
一个朋友接到一个需求,从大数据平台收到一个数据写入在20亿+,需要快速地加载到MySQL中,供第二天业务展示使用。
Java团长
2019/03/04
1.3K0
「数仓面试」如何确定主题域?
大家好,我是一哥,前几天跟一个朋友聊了一些数据中台建设的内容,针对数据仓库中主题域如何划分这个话题聊了很多。其实数据仓库建设的理论大家已经都知道了不少,也看过不少书,那么在实际建设数据仓库中,我们还是会遇到各种问题。
数据社
2022/02/17
8780
「数仓面试」如何确定主题域?
性能测试: 每秒交易数(TPS)
TPS,全称是“Transactions Per Second”,意思是“每秒交易数”。这是一种衡量系统性能的指标,特别是在数据库和交易系统中常常使用。每个“交易”可以被理解为一个用户请求和系统对该请求的响应。例如,在一个电子商务网站中,一个“交易”可能是用户提交一个购物买订单,系统接收到这个请求并处理它(包括检查库存,确认支付,更新数据库等),然后返回确认信息给用户。
运维开发王义杰
2023/08/16
1.9K0
性能测试: 每秒交易数(TPS)
如何确定细胞聚类的PC数
官网上PC数目的确定(https://satijalab.org/seurat/v3.1/pbmc3k_tutorial.html)
生信技能树jimmy
2020/03/30
6.8K0
浪尖,请问如何确定hive分桶数?
顺便打个广告,更多优质文章和问题答疑及视频教程请点击原文链接,加入浪尖知识星球-Spark技术学院获取。
Spark学习技巧
2018/08/01
4.6K0
【题解】平均数
给一个长度为 n 的数列,我们需要找出该数列的一个子串,使得子串平均数最大化,并且子串长度 \ge m。
MikeC
2022/09/21
1.6K0
如何开启 MySQL 事务?
https://dev.mysql.com/doc/refman/8.0/en/commit.html
程序员小航
2021/07/09
2.6K0
MySQL 中事务详解
http://blog.csdn.net/qh_java/article/details/14045765
bear_fish
2018/09/20
1K0
Mysql中的事务
2.为什么要使用事务: 事务具备的ACID特性,是我们使用事务的原因,在我们日常的业务场景中有⼤量的需求要⽤事务来保证。支持事务的数据库能够简化我们的编程模型, 不需要我们去考虑各种各样的潜在错误和并发问题,在使⽤事务过程中,要么提交,要么回滚,不⽤去考虑⽹络异常,服务器宕机等其他因素,因此我们经常接触的事务本质上是数据库对 ACID 模型的⼀个实现,是为应用层服务的。  因此在使用数据库过程中,对于修改只要提交成功,数据就可以安全的保存,只要回滚就可以回到,保存点事务之初
用户11305962
2024/10/09
710
Mysql中的事务
「R」如何计算几何平均数
刚遇到一个有意思的问题,如何用R计算几何平均数。如果数字少,简单,计算很容易,直观上,先用prod函数连乘,然后开方即可。
王诗翔呀
2020/07/03
2.3K0
什么是事务?MySQL如何支持事务?
事务是由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行。程序和事务是两个不同的概念。一般而言:一段程序中可能包含多个事务。(说白了就是几步的数据库操作而构成的逻辑执行单元)
陈不成i
2021/05/24
1.8K0
Mysql中事务的使用【mysql】
1,作用 主要用户操作处理量大,复杂度高的数据。要保证sql语句,要么全执行,要么全不执行,但它必须要满足四个条件:原子性,一致性,隔离性,持久性。 2,方法 事务有两种处理方法 【用 BEGIN, ROLLBACK, COMMIT来实现】 BEGIN 开始一个事务 ROLLBACK 事务回滚 COMMIT 事务确认 【直接用 SET 来改变 MySQL 的自动提交模式】 SET AUTOCOMMIT=0 禁止自动提交 SET AUTOCOMMIT=1 开启自动提交
sinnoo
2020/11/13
3.4K0
MySQL中的事务和事务隔离级别
一个事务是一个完整的业务逻辑单元,不可再分。 比如:银行账户转账,从A账户向B账户转账10000.需要执行两条update语句。
共饮一杯无
2022/11/28
7830
MySQL进阶|MySQL中的事务(二)
上一个章节说了什么是事务,在MySQL数据库中如何查询事务,以及哪些存储引擎支持事务。这一章节来说说事务的隔离。上一篇传送:MySQL进阶|MySQL中的事务(一)
艾特
2023/12/28
1410
MySQL进阶|MySQL中的事务(二)

相似问题

如何计算每秒MySQL事务

10

如何解释“事务每秒”?

20

如何求出每秒钟的平均值?MySQL

10

很高的事务每秒

10

如果我知道每秒预期的事务,如何找到CPU所需的核数?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文