我正在尝试为应用程序构建网络服务,因此数据存储在我拥有的在线数据库中。我目前正在构建 php 文档,我很好奇如何才能 POST
一个array
使用 cURL
在 Mac 终端应用中。
您看,应用程序将向网络服务发送一个由字符串组成的数组。例如像这样的 ["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[]
是启动它的正确方法,但我不太确定 =
之后会发生什么-符号。
有人知道正确的做法吗?
如果这恰好是正确的,那么我在数组中存储数据的方式就有问题。我正在使用 stmt
和 bind_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/