使用终端中的cURL发布数组

时间:2014-03-30 03:52:40

标签: php arrays database curl terminal

我正在尝试为应用程序构建Web服务,因此数据存储在我拥有的在线数据库中。我目前正在构建php文档,我很好奇我如何在{strong>终端Mac应用程序中使用POST array cURL ["String 1", "String 2", "String 3"]

您会看到,应用程序会将包含字符串的数组发送到Web服务。例如像curl -F "user_id=1" localhost/test/webservice.php"这样的东西。 但是为了测试我将用于将这些值插入数据库的代码是否有效,我需要以某种方式将此数据传递给Web服务。到目前为止,我一直在使用 Mac终端应用并发布如此curl -F "user_id=1" -F "title=Random title 123" -F "num_items=2" -F "items[]=[Item 1, Item 2]" localhost/test/webservice.php ,但我不知道如何传递数组。

到目前为止我所拥有的是:

items[]

但我不认为这是传递数组的正确方法,因为我相信我的php文档中的代码是正确的,但是存储在我的数据库中的值实际上是单词 array 。我相信=是启动它的正确方法,但我对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(); 关键字:

{{1}}

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

感谢所有帮助!

感谢。

1 个答案:

答案 0 :(得分:8)

首先确保您要-F(适用于multipart/form-data)或-d(适用于application/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
    )