php - 使用 PHP 在 SQL 中编辑数组
问题描述
我有一个数据库,其中有一列包含数组:
我需要一条 SQL 语句来更新数组以向其中添加另一个值:
UPDATE dbname SET array = ["737","669","newarraynumber"] WHERE id = 1
如何使用 PHP 更新这个数组?
什么创建了数组:
var items = document.getElementsByClassName('box checked');
var string = '/beheer/po.php?'
var length2 = items.length - 1;
for (var i = 0; i < items.length; i++){
string += 'id[]=';
string += items[i].name;
if(length2 > 0){
string += '&';
}
length2--;
}
if(string == "/beheer/po.php?"){
alert('select at least one row')
} else{
location.replace(string);
}
解决方案
您的数组可能只是一个看起来像数组的字符串,我怀疑它会在代码中的某处被解析为一个。我使用的 SQL 系统实际上没有数组功能。
要添加到字符串,您需要将字符带到右大括号,然后使用新的右大括号添加新值。我认为在 SQL 中执行此操作的最简单方法是使用 LEFT 和 LEN:
UPDATE dbname SET array = LEFT(array, LEN(array)-1)+ ', "' + 'newarraynumber' + '"]'
通过这种方式,您可以找到现有字符串的长度 (LEN),从字符串的 LEFT 开始,取许多减一字符,不包括结束的 ']',并将其用作替换字符串的基础。
这绝对不是最好的方法,但是在遗留代码中处理导致这成为您的数据库外观的决策,这将满足您的要求。
*这假设字符串“array”格式正确,看起来像您发布的内容,没有多余的空格,右大括号是最后一个字符。我个人也会在准备好的语句中放入新的数组值,这通常是避免 sql 注入问题的好习惯,这就是为什么我没有一个字符串来插入值和围绕它的字符
推荐阅读
- javascript - 使用D3生成SVG饼图如何垂直对齐文本
- java - 将日期(TextView)添加到 SQLite 数据库中
- sql-server - SSRS:与 NULLS 竞争时的 SUM 值
- drop-down-menu - 如何使用 Imacros 在下拉菜单中选择下一个或上一个项目?
- c# - Restsharp 对此资源的访问受到保护 Windows 窗体上的错误
- apache-kafka - 连接到具有多个分区的 Kafka 集群的 Flink 消费者的 java.lang.RuntimeException
- c - clang - macOS 上的 linux 交叉编译
- python - 如何在 Python 中垂直打印每个变量
- r - 无法取消嵌套具有不同列类型的列表数据框
- java - JAVA:无法理解如何处理输入文件