php - 在终端中使用 cURL 发布数组

标签 php arrays database curl terminal

我正在尝试为应用程序构建网络服务,因此数据存储在我拥有的在线数据库中。我目前正在构建 php 文档,我很好奇如何才能 POST一个array使用 cURLMac 终端应用中。

您看,应用程序将向网络服务发送一个由字符串组成的数组。例如像这样的 ["String 1", "String 2", "String 3"] . 但是为了测试我将这些值插入数据库的代码是否有效,我需要以某种方式将这些数据传递给 web 服务。到目前为止,我一直在使用 Mac Terminal 应用程序 并像这样发布 curl -F "user_id=1" localhost/test/webservice.php" ,但我不知道如何传递数组。

我目前的情况是这样的:

curl -F "user_id=1" -F "title=Random title 123" -F "num_items=2" -F "items[]=[Item 1, Item 2]" localhost/test/webservice.php

但我认为这不是传递数组的正确方法,因为我相信我的 php 文档中的代码是正确的,但存储在我的数据库中的值实际上是 array.我相信items[]是启动它的正确方法,但我不太确定 = 之后会发生什么-符号。

有人知道正确的做法吗?

如果这恰好是正确的,那么我在数组中存储数据的方式就有问题。我正在使用 stmtbind_param()像这样的关键字:

$items = $_POST["items"]; // This is the array

$stmt = $this->db->prepare('INSERT INTO items (item_id, user_id, title) VALUES (?, ?, ?)');
$stmt->bind_param('iis', $item_id, $user_id, $items);
$stmt->execute();
$stmt->close();

我想要实现的基本上是使用一个插入语句将数组中的所有值发布到数据库中。如果那是错误的,那么正确的做法是什么?

感谢所有帮助!

谢谢。

最佳答案

首先确定你要执行-F(对于multipart/form-data)或者-d(对于应用程序/x-www-form-urlencoded)。在任何一种情况下,下面是您应该如何传递数组:

-F "items[]=Item 1" -F "items[]=Item 2"

或使用-d

-d "items[]=Item 1" -d "items[]=Item 2"

您的服务器将收到以下格式的数据:

[items] => Array
    (
        [0] => Item 1
        [1] => Item 2
    )

关于php - 在终端中使用 cURL 发布数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22740053/

相关文章:

android - 将 Android 应用程序设置保存到 mysql 数据库

php - 使用接受数组的 WHERE 子句进行 SQL 查询

php - AWS Lambda错误: Error: Runtime failed to start: fork/exec/opt/bootstrap: no such file or directory

php - 使用 Joomla 数据库对象的递归 Mysql 查询

c++ - 以合理的编译时间静态初始化巨大的 uint8_t 数组

c - `gdb` 给出了 `ret` 和自然返回的不同结果

php - 将动态数组保存到 MySQL 数据库

android - 查询创建的 dbView(不是表)时出错!

sql - 将字符转换为日期时间的问题

php - 类型 : ArgumentCountError Message: Too few arguments to function