为我有史以来最长的问题道歉。我正在尝试与 ROOT(用于高能物理分析的 C++ 中的 CERN 框架)中的 mysql 数据库的 php 前端接口。首先,我试图让这个 php 界面很好地使用wget
,curl
首先是因为我更熟悉它们。以下命令有效:
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,我使用了一个名为 as socket.SendRaw(message, message.Length())
(socket is a ) 的函数,如果我的“消息”是,这给了我与没有发布数据开关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 请求(我见过多行的东西。对吗?)对不起,我一无所知!
PS。mysql 查询是show databases
,但空格已被替换为_spazio_
, Italian for space。db 和 php 接口的作者需要它(以及符号的各种替换),但是以前有人见过吗?试图排除故障是可怕的!