SO에 대한 나의 가장 긴 질문에 대한 사과. 내가 루트 (MySQL은 고 에너지 물리학 분석을위한 C + +에서 CERN 프레임 워크)에 MySQL 데이터베이스에 대한 프론트 엔드와 인터페이스하려고합니다. 우선,이 PHP 인터페이스를 wget
과 curl
과 함께 사용하면 좋을 텐데요. 왜냐하면 그것들을 더 잘 알고 있기 때문입니다. 다음 명령이 작동 :PHP에서 컨텐츠 가져 오기 : POST 및 쿼리 관련 문제
wget --post-data "hostname=localhost:3306&un=joeuser&pw=psswd&myquery=show_spazio_databases;" http://some.host.edu/log/log_query_matlab.php
이 결과는 다음과 같습니다
database1
database2
좋은 그. 나는 다음 --post-data
을두면 나는 결과를 얻을 :
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'admin'@'localhost' (using password: NO) in /log/log_query_matlab.php on line 6
i'm dead! Access denied for user 'admin'@'localhost' (using password: NO)
Warning: mysql_query() [function.mysql-query]: Access denied for user 'admin'@'localhost' (using password: NO) in /log/log_query_matlab.php on line 29
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /log/log_query_matlab.php on line 29
나는 PHP 스크립트에 대한 액세스 권한 (읽기 전용)을하지만, 오류 자체도 중요하지 않습니다. ROOT를 사용하여, 나는 socket.SendRaw(message, message.Length())
로 불리는 함수를 사용하여 중요한 무엇 (소켓은 TSocket
이다)이 데이터가 내 "메시지"경우 전환 후없이 나에게 wget
와 같은 "오류"를 제공
"POST http://some.host.edu/log/log_query_matlab.php?hostname=localhost:3306&un=joeuser&pw=psswd&myquery=show_spazio_databases"
이입니다 헛수고 일 수도 있지만 누군가가 --post-data
스위치와 동일한 내용을 포함하는 "메시지"를 형식화해야하는 방법을 알고 있습니다. 또는 한 줄에 POST 요청을 형식화하는 표준 방법이 있습니다 (필자는 multi-line stuff을 보았습니다. 맞습니까?) 미안하지만 나는 단서가 없습니다!
추신. mysql 쿼리는 show databases
이지만 공간은 이탈리아어로 _spazio_
으로 바뀌 었습니다. db와 php 인터페이스의 작성자는 그것을 필요로합니다 (그리고 심볼을위한 다양한 대체물). 그 문제를 해결하려고 시도하는 것은 끔찍했습니다!
보인다. ROOT 프레임 워크를 사용하여 POST HTTP 요청을 보내는 방법 (또는이 프레임 워크를 사용하여 명령 줄 유틸리티를 실행하는 방법을 찾는 방법) "이라고 짧을 수 있습니다. –
나는 그렇게 생각한다. 또한 "하나의 라이너에서 POST HTTP 요청을 보내는 방법"일 수도 있습니다. ROOT는 C++이기 때문에, 아마도 C++ 라이브러리가 SendRaw를 구현하는 데 사용됩니다. HTTP 요청을 제출하기위한 공통 C++ 형식이 있습니까? 사실, HTTP 요청에 대해 더 많이 알 필요가 있습니다! – physicsmichael