Client::
Android移动
Server::
AWS服务器
服务器中安装了mysql
数据库
Database name::
人
Tables in person Database::
“sam”和“carl”
现在,移动设备会发送请求...
SQL query
以便移动设备发送请求i / p为
“sam”display all the values of sam table
[注]
我使用了语句SELECT * FROM TABLE_NAME
我想要实现的是当客户端请求进入时的条件响应
I / p表示:: 说我把carl作为ip ....我想执行一个查询,其他sam作为输入...我想执行另一个查询
我应该写什么查询语句?
希望我正确地陈述我的问题
感谢
答案 0 :(得分:0)
为此你必须再要一个表来存储IP地址和它们的表名并创建这样的查询
Select tableName from IPTable where ip= 'xxx.xxx.xxx.xxx'
并在第二个查询中使用该表名
select * from tablename
答案 1 :(得分:0)
首先,您必须在服务器代码中获取Android客户端的IP地址。在PHP中(source):
$client_ip = $_SERVER['REMOTE_ADDR']
或者,如果ELB后面有多个Apache Web服务器(source):
$http_headers = apache_request_headers();
$client_ip = $http_headers["X-Forwarded-For"];
现在,您的PHP代码可以根据$client_ip
的值选择要运行的查询。如果地址是Sam's,请运行select * from sam
,如果是Carl,请运行select * from carl
。如果它是未知的IP地址,那么您可以回复错误消息。
无论如何,我不认为基于IP的识别是一个好主意。如果Carl或Sam重新启动他的Android手机,其IP地址将会改变,连接将不再有效。
您的数据库设计也存在问题。例如,如果您当前的Sam和Carl表包含聊天消息,那么以下架构会更好:
- User table: ID, Name, IPAddress
- Message table: ID, UserID, SendingTime, Text
对于这些表,列出当前用户的消息的查询将如下所示:
SELECT User.Name, Message.SendingTime, Message.Text
FROM User, Message
WHERE User.ID = Message.UserID AND User.IPAddress = 'xxx.xxx.xxx.xxx'
此处'xxx.xxx.xxx.xxx'
将是$client_ip
的值。