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. KS求有向图强连通分量模板

    #include<bits/stdc++.h> using namespace std; typedef long long ll; int n,m; ; *maxn; struct no ...

  2. NVMe与SCM结合将赋予存储介质的能力

    转自:SCM是什么鬼,NVMe与其结合将赋予存储介质哪些能力? 全SSD闪存阵列在企业级存储得到广泛应用,相比传统机械硬盘,它的延迟.性能和可靠性都有了显著提高.许多早期开发商抓住其闪存技术优势的机遇 ...

  3. 使用sudo,mvn command not found

    一个简单的解决办法是,编辑你当前用户的 .bashrc 文件,添加下面这行内容: alias sudo="sudo env PATH=$PATH" 因为系统预装的 sudo 在编译 ...

  4. HDU 5001 Walk (暴力、概率dp)

    Walk Time Limit: 30000/15000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Sub ...

  5. Python入门--8--字符串

    一.创建.修改字符串 str1='呆呆 槑槑 木木 林林' str1[1] #输出呆 str1[2] #输出' ',也就是空值 str1=str[:5]+'插入乖呆 '+str1[5:] #修改字符串 ...

  6. PEP8 Python编码规范(转)

    一 代码编排1 缩进.4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格.2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号.换行点要在操作符的后边敲回车.3 类 ...

  7. yii 之数据库关联查询

    <?php namespace app\controllers; use yii\web\Controller; use app\models\Customer; class CustomerC ...

  8. MYsql 锁详解 锁 与索引的关系

    原文:http://blog.csdn.net/xifeijian/article/details/20313977#t10   mysql innodb的锁是通过锁索引来实现的.   select ...

  9. P1540 机器翻译(STL 链表)

    题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 题目描述 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换.对于每个英文单词,软件会先 ...

  10. git(一):了解、学习、安装git

    自述 一直到今天才真正的去了解学习使用git,看<git权威指南>这本书的第一篇,忽然有很多共鸣,比如在大学开始编程的时候,总是把写的所有demo和项目保存在U盘里,内存不够用就改为移动硬 ...