gpt4 book ai didi

php - 有没有更好的方法使用 JSON 或其他方式上传记录集?

转载 作者:行者123 更新时间:2023-11-29 07:40:37 24 4
gpt4 key购买 nike

我有 firebird 数据库,需要将数据库表之一上传到网络上的远程 mysql 服务器。有数千条记录,我不知道如何上传这些记录。我可以用JSON将记录一一上传。我正在使用 POST 方法。

如何一次性或分批上传所有记录?

更新1:此代码适用于一一数据更新。但这就像洪水袭击一样。我想一次性上传我选择的所有数据。

Delphi 7 侧面HTTP POST方法

function PostURLAsString(aURL: string; code:string): string;
var
lHTTP: TIdHTTP;
lStream: TStringStream;
parameters: TStringList;

begin
lHTTP := TIdHTTP.Create(nil);
lHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
lStream := TStringStream.Create(Result);
try
Parameters := TStringList.Create;
parameters.Add('code=' + code);
lHTTP.Post(aURL, parameters,lStream);
lStream.Position := 0;
Result := lStream.ReadString(lStream.Size);
finally
FreeAndNil(lHTTP);
FreeAndNil(lStream);
end;
end;

逐条上传记录:

procedure TForm1.Button1Click(Sender: TObject);
var
js:TlkJSONobject;
jb: TlkJSONbase;
s: String;
code:string;
begin
IBQuery1.First;
with IBQuery1 do
while not Eof do
begin
code := VarToStr(FieldValues['code']);
s := PostURLAsString('http://www.domain.com/uitems.php', code);

js := TlkJSON.ParseText(s) as TlkJSONobject;
jb := js.Field['items'];

if VarToStr(jb.Child[0].Field['status'].Value) = '1' then
ListBox1.Items.Add(code + ' is inserted')
else
ListBox1.Items.Add(code + ' is not inserted');

Application.ProcessMessages;

js.Free;
Next;
end;
end;

PHP 端uitems.php

<?php
include_once dirname(__FILE__) .'/DBConnect.php';

function update($code){

$db = new DbConnect();

// array for json response
$response = array();
$response["items"] = array();

$sqlstr = "INSERT INTO items (`code`) VALUES ('$code')";

$result = mysql_query($sqlstr);



$tmp = array();

if ($result) {
// successfully updated
$tmp["status"] = 1; //inserted
} else {
$tmp["status"] = 0; //not inserted
}

array_push($response["items"], $tmp);

header("Content-Type: application/json; charset=utf-8", true);
// echoing json result
echo json_encode($response, JSON_UNESCAPED_UNICODE);

}

update($_POST["code"]);

?>

最佳答案

您可以使用 JSON 发送数据数组。只需在 Delphi 端准备该数组,将其发送到您的脚本并为数组中的每个项目执行查询。您还可以返回一个数组,其中包含您上传的每个数组项的成功消息。

关于php - 有没有更好的方法使用 JSON 或其他方式上传记录集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29188017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com