Delphi代码

************************************************************************************************************************************

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, StdCtrls, ShellAPI;

type
  TForm1 = class(TForm)
    Button1: TButton;
    IdHTTP1: TIdHTTP;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  strlist_ParamPost : TStringList ;
  class_IdHttp : TIdHTTP ;
begin
  strlist_ParamPost := TStringList.Create() ;
  class_IdHttp := TIdHTTP.Create(nil);
  try
    // 向目标PHP网址POST参数
    // strlist_ParamPost.Add('1=测试1') ;
    
       strlist_ParamPost.Add('1=aaaaa');

// TidHTTP属性设置
    class_IdHttp.ReadTimeout := 30*1000 ; // 超时设置
    class_IdHttp.Post('http://localhost/DelphiRequest/index.php', strlist_ParamPost) ;
    //打开网页,ShellExecute需要引入uses ShellAPI
    // ShellExecute(Application.Handle, nil, 'http://localhost/DelphiRequest/index.php', nil, nil, SW_SHOWNORMAL);
  finally
    FreeAndNil(class_IdHttp);
    strlist_ParamPost.Free() ;
end;
end;

end.
****************************************************************************************************************************************************************************************

php文件代码

新建一个文件夹DelphiRequest,然后在这个文件夹里建一个index.php写入代码

然后在输入本地地址http://localhost/DelphiRequest/index.php/就可以看到该PHP网页

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
if(count($_POST)!= 0)
{
$var_PostAllParma = "" ;
foreach($_POST as $var_Key => $var_Value)
{
$var_PostAllParma .= $var_Value."\r\n" ;
} $host = 'localhost';
$database = 'test';
$username = 'root';
$password = '****';
$selectName = '1';//要查找的用户名,一般是用户输入的信息
$pdo = new PDO("mysql:host=$host;dbname=$database", $username, $password);//创建一个pdo对象
$pdo->exec("set names 'utf8'");
$sql ="UPDATE delphi_test_content SET content= '$var_PostAllParma' WHERE ID='2'";
$stmt = $pdo->prepare($sql);
$rs = $stmt->execute(array($selectName));
// if ($rs) {
// // PDO::FETCH_ASSOC 关联数组形式
// // PDO::FETCH_NUM 数字索引数组形式
// while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
// $name = $row['id'];
// $age = $row['content'];
// echo "Name: $name ";
// echo "Age: $age ";
// echo "\n";
// }
// }
$pdo = null;//关闭连接 } ?></body>
</html>

**********************************************************************************************************************************************************

数据库信息(PDO方式连接数据库)

表名:delphi_test_content

字段:id(主键),content

**********************************************************************************************************************************************************

DEMO效果:

F9运行delphi 按下按钮


按下后,把‘aaaa’这个信息放在POST里传递给http://localhost/DelphiRequest/index.php,该网页获取POST值并且把值保存在表delphi_test_content的ID为2的content里

最终结果


但是如果是中文的话貌似不显示,我也不知道为啥....

后来解决了这个中文显示问题(2016.12.16)

需要添加一行代码

$a=mb_convert_encoding($var_PostAllParma, "UTF-8", "GBK");//delphi7用post传递值给php中文需要字符转码

然后把查询语句的$var_PostAllParma参数更换为$a

$sql ="UPDATE delphi_test_content SET content= '$a' WHERE ID='2'";

最后就解决中文存储到数据库的问题~

谢谢观看~

http://blog.csdn.net/s371795639/article/details/53640483

Delphi通过POST传递参数给PHP的更多相关文章

  1. Delphi过程函数传递参数的几种方式

    Delphi过程函数传递参数的几种方式  在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out. 另一种不加修饰符的为默认按值传递参数. 一.默认方式以值方式传递参数 proced ...

  2. 关于Delphi中多线程传递参数的简单问题

    http://bbs.csdn.net/topics/390513469/ unit uThread; interface uses Classes; type Th = class(TThread) ...

  3. Delphi过程函数传递参数的八种方式

    今天一同事问我为什么有些过程函数里面有Var而有些没有,不解,遂到网上百度,得解.快哉,快哉. 在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out.另一种不加修饰符的为默认按值传 ...

  4. 【delphi】Delphi过程、函数传递参数的八种方式

    Delphi过程函数传递参数的八种方式

  5. delphi的一些语法知识 以及参数传递问题,按引用方式传递参数,按值方式传递参数

    //delphi中exit,abort,break,continue 的区别 exit: 退出函数体abort: 遇到异常,安静处理,就是不显示不提示break: 退出当前循环体,包括for ,whi ...

  6. Vue 给子组件传递参数

    Vue 给子组件传递参数 首先看个例子吧 原文 html <div class="container" id="app"> <div clas ...

  7. [转] C++的引用传递、指针传递参数在java中的相应处理方法

    原文出处:[http://blog.csdn.net/conowen/article/details/7420533] 首先要明白一点,java是没有指针这个概念的. 但是要实现C++的引用传递.指针 ...

  8. 记一次WinForm程序中主进程打开子进程并传递参数的操作过程(进程间传递参数)

    目标:想在WinForm程序之间传递参数.以便子进程作出相应的处理. 一种错误的方法 父进程的主程序: ProcessStartInfo psi = new ProcessStartInfo(); p ...

  9. 在 Angularjs 中 ui-sref 和 $state.go 如何传递参数

    1 ui-sref.$state.go 的区别 ui-sref 一般使用在 <a>...</a>: <a ui-sref="message-list" ...

随机推荐

  1. [HNOI2002]彩票 (搜索+剪枝)

    题目描述 某地发行一套彩票.彩票上写有1到M这M个自然数.彩民可以在这M个数中任意选取N个不同的数打圈.每个彩民只能买一张彩票,不同的彩民的彩票上的选择不同. 每次抽奖将抽出两个自然数X和Y.如果某人 ...

  2. 将一个list均分成n个list

    /** * 将一个list均分成n个list,主要通过偏移量来实现的 * @param source * @return */ public <T> List<List<T&g ...

  3. Codeforces Round #267 (Div. 2) C. George and Job (dp)

    wa哭了,,t哭了,,还是看了题解... 8170436                 2014-10-11 06:41:51     njczy2010     C - George and Jo ...

  4. php——离线执行任务

    <?php//设置忽略是否关闭终端窗口ignore_user_abort(true);ini_set('max_execution_time', '0');//采集页面函数,看不懂执行百度cur ...

  5. SGU101 求有重边的无向图欧拉迹

    题意:好多木棒,俩端有数字(0--6)标记,按数字相同的端首尾相连成一条直线(木棒可以相同).即求有重边的无向图欧拉迹. 先判定是否为欧拉图,俩个条件,不说了.如果是欧拉图,输出路经. 方法:dfs遍 ...

  6. Head first python前六章小结

    看这本Head first python已经有十几天了,到第七章开始讲Web开发.移动应用开发,后半年我主要是想往后端的方向发展,所以这本书暂时告一段落.这篇博客没有太多的注释,主要是内容比较简单,只 ...

  7. PERL 源码 大神网站

    http://blog.csdn.net/haoyujie/article/category/1187883 http://deepfuture.iteye.com/blog/816428

  8. Java8期间及持续时间

    原文:http://www.yiibai.com/java8/java8_periodduration.html 使用Java8,两个专门类引入来处理时间差. Period - 处理有关基于时间的日期 ...

  9. iOS开发 清除电话号码中的其他符号

    最近从通讯录读取电话号码,读出得号码如:134-1814-****. 而我需要的为11位纯数字,一直找方法解决此问题,今天终于找到了.. 分享一下…… 代码如下: NSString *original ...

  10. OllyDBG找到按钮的处理函数

    最近系统有点慢,就想优化一下,于是下了个XX大师.结果要注册才行,看来可以用来练练手了.OD一下,靠还加了壳,偶就是用一下,就不脱你了.开始在弹出窗口MessageBoxA下断,伊,结果不是用的这个函 ...