php命名管道,PHP是啥管道

本文目錄一覽:

pHP鏈接數據庫報錯Warning: mssql_connect() [function.mssql-connect]: message: 用戶 ‘NT AUTHORITY\IU

之前我剛遇到過這類問題。

使用php鏈接mssql出錯,但是代碼沒有問題,本機測試正常,上傳到服務器又不行。

如果是這種情況,請參照下面的步驟。

1、運行 SQL Server 配置管理器:SQL Server Configuration Manager,打開協議 Protocols

,允許命名管道 “named pipes” 和 “tcp/ip” ,右鍵點擊 “tcp/ip”,打開屬性 Properties 標籤 “IP addresses” ,在 TCP 動態端口 “TCP Dynamic Ports” 填入 1433 (其實只要填0就表示開啟了動態端口)

2、下載正確版本的 ntwdblib.dll (2000.80.194.0),地址: ,覆蓋 php\ntwdblib.dll (mssql2005,mssql2008等等對應的ntwdblib.dll文件版本不同,請參照自己的mssql版本下載對應文件。)

3、php.ini有個mssql的設置 mssql.secure_connection 改成 off。(我就因為這個弄了好久,ON的意思是使用安全連接,實際上是使用nt賬戶登錄,並非使用mssql賬戶登錄。一般我們遠程連接都是使用mssql賬戶登錄)

請教PHP里使用命名管道連接本機mysql如何寫連接串

要使用管道方式必須滿足以下條件:

1.MySql數據庫為mysqld-nt, mysqld-max-nt.

2.Windows NT以上平台(Windows NT、2000、XP、2003….)

3.My.ini配置的修改以支持管道(要有下面給出的配置):

[client]

protocol = pipe

socket = mysql

[mysqld]

enable-named-pipe

socket = mysql

重啟MySql數據庫

用個客戶端連接數據庫(HostName/IP要填”.”(英文的句號),以說明用管道方式連接),以測試是否管道

連接可以成功.

好了.連接成功.現在進入編程.其實和平常的MySql編譯的一樣的.HostName/IP填”.”(英文的句號),就

代表使用管道方式了:

mysql_real_connect(hMySql, “.”, m_szUser, m_szPasswd, m_szDBName, m_uPort, NULL,

m_uFlag);

block 塊設備文件,如某個磁盤分區、軟驅、光驅CD-ROM等

char 字符設備是指在I/O傳輸過程中以字符為單位進行傳輸的設備,例如鍵盤,打印機等

dir 目錄類型

fifo 命名管道,常用於將信息從一個進程傳輸到另一個進程

file 普通文件類型,如文本文件或可執行文件等

link 符號鏈接,是指向文件指針的指針,類似Windows中的快捷方式

unknown 未知類型

求解php和c語言的進程間通信能兼容嗎

PHP是比較流行的腳本語言,WEB開發使用廣泛,如何在C++程序中不依賴任何WEB

SERVER調用PHP,並取得執行結果完成交互。

PHP安裝好後,在目錄下有一個php-cgi.exe,我們只要執行這個CGI程序,並將數據通過命名管道傳遞給它,然後把執行結果通過命名管道讀取出來即可,過程並不複雜!請看如下代碼:

命名管道的創建:

SECURITY_ATTRIBUTES

sa

=

{sizeof(SECURITY_ATTRIBUTES)};

sa.bInheritHandle

=

1;

sa.lpSecurityDescriptor

=

NULL;

HANDLE

hStdoutR,

hStdoutW,

hStdinR,

hStdinW;

CreatePipe(hStdoutR,

hStdoutW,

sa,

0);

SetHandleInformation(hStdoutR,HANDLE_FLAG_INHERIT,

0);

CreatePipe(hStdinR,

hStdinW,

sa,

0);

SetHandleInformation(hStdinW,

HANDLE_FLAG_INHERIT,

0);

啟動php-cgi進程:

STARTUPINFO

si

=

{sizeof(STARTUPINFO)};

PROCESS_INFORMATION

pi;

si.dwFlags

=

STARTF_USESTDHANDLES;

si.hStdOutput

=

hStdoutW;

si.hStdInput

=

hStdinR;

char

env[255]

=

“REQUEST_METHOD=POST\0CONTENT_LENGTH=18\0CONTENT_TYPE=

application/x-www-form-urlencoded\0SCRIPT_FILENAME=D:\\test.php”;

if(!CreateProcess(NULL,

“d:\\php5\\php-cgi.exe

D:\\test.php”,

NULL,

NULL,

1,

NORMAL_PRIORITY_CLASS,

env,

NULL,

si,

pi))

return

0;

CloseHandle(hStdoutW);

CloseHandle(hStdinR);

傳遞數據:if(!WriteFile(hStdinW,

“var=Hello

VCKBASE!”,

18,

dwWritten,

NULL))

return

0;

CloseHandle(hStdinW);

讀取返回數據:char

buf[1000]

=

{0};

DWORD

dwRead

=

0;

while(ReadFile(hStdoutR,

buf,

sizeof(buf),

dwRead,

NULL)

dwRead

!=

0){

printf(buf);

}

CloseHandle(hStdoutR);

D盤的test.php

?

echo

$_REQUEST[“var”];

?

執行結果:

X-Powered-By:

PHP/5.3.1

Content-type:

text/html

Hello

VCKBASE!

實際上,C++調用其他CGI程序,例如PERL,方法也大同小異,如果你打算做一個自己的WEB服務器,調用CGI程序是少不了的。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/251841.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-13 17:32
下一篇 2024-12-13 17:33

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台服務器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • PHP數組去重詳解

    一、array_unique函數 array_unique是php中常用的數組去重函數,它基於值來判斷元素是否重複,具體使用方法如下: $array = array(‘a’, ‘b…

    編程 2025-04-24
  • PHP導出Excel文件

    一、PHP導出Excel文件列寬調整 當我們使用PHP導出Excel文件時,有時需要調整單元格的列寬。可以使用PHPExcel類庫中的setWidth方法來設置單元格的列寬。下面是…

    編程 2025-04-24
  • php擴展庫初探

    一、什麼是php擴展庫? PHP擴展庫(PHP extension)是一些用C語言編寫的動態鏈接庫,用於擴展PHP的功能。PHP擴展庫使得PHP可以與各種數據庫系統相連、SMTP、…

    編程 2025-04-23

發表回復

登錄後才能評論