簡體   English   中英

記錄未保存到Android中使用PHP的數據庫

[英]records are not saving into database using php in android

您好在下面,我正在為此創建群聊應用程序,我從客戶端使用action = createGroup傳遞了以下詳細信息。

java的

public String CreateGroup(String groupname,String username,
            ArrayList<FriendInfo> result) throws UnsupportedEncodingException  {

         List<String> usersName = new ArrayList<String>(); 
            for (int i = 0; i < result.size(); i++) { 
            usersName.add(result.get(i).userName); 
            }
                String params = "groupname="+ URLEncoder.encode(groupname,"UTF-8") +
                        "&username="+ URLEncoder.encode(this.username,"UTF-8") +
                        "&password="+ URLEncoder.encode(this.password,"UTF-8") +
                        "&friendUserName=" +usersName+      
                        "&action="  + URLEncoder.encode("CreateGroup","UTF-8")+
                        "&";

            Log.i("PARAMS", params);
            return socketOperator.sendHttpRequest(params);

這是我的服務器端代碼。我在哪里出錯了,因為數據沒有保存到數據庫中。任何人都可以幫我

PHP

   case "CreateGroup":
    $userId = authenticateUser($db, $username, $password);

    if ($userId != NULL)

    {

        if (isset($_REQUEST['friendUserName']))         
        {               
             $friendUserNames = $_REQUEST['friendUserName'];
            $friendUserNames = str_replace('[','',$friendUserNames);
            $friendUserNames = str_replace(']','',$friendUserNames);
            $friendUserNames = explode(",", $friendUserNames);
            foreach($friendUserNames as $friendUserName){

             $groupname = $_REQUEST['groupname'];

             $sql = "select Id from users where username='$friendUserName' limit 1";
             echo $sql;
             if ($result = $db->query($sql))

             {
                    if ($row = $db->fetchObject($result))

                    {
                         $requestId = $row->Id;

                         $groupname = $row->Id;

                         if ($row->Id != $userId)
                         {
                                 $sql = "insert into group (groupname,providerId, requestId)values(".$groupname.",".$userId.",".$requestId.")";
                                 echo $sql;


                                 if ($db->query($sql))
                                 {
                                        $out = SUCCESSFUL;
                                 }
                                 else
                                 {
                                        $out = FAILED;
                                 }
                        }
                        else
                        {
                            $out = FAILED;  
                        }                                                
                    }
                    else
                    {
                        $out = FAILED;                      
                    }
             }

             else
             {
                    $out = FAILED;
             }              
        }
        }
        else
        {
                $out = FAILED;
        }           
    }
    else
    {
        $out = FAILED;
    }   
break;

CREATE TABLE IF NOT EXISTS `group` (
`id` int(11) NOT NULL,
  `groupname` varchar(25) NOT NULL,
  `providerId` int(25) NOT NULL,
  `requestId` int(5) NOT NULL
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `group`
--
ALTER TABLE `group`
 ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `username` (`providerId`), ADD UNIQUE KEY `userid` (`providerId`), ADD UNIQUE KEY `ufriendid` (`requestId`);

$ _REQUEST ['friendUserName']發布了多個用戶名(一個數組)。 所以你需要妥善處理

嘗試更換:

$friendUserName = $_REQUEST['friendUserName'];

$friendUserNames = $_REQUEST['friendUserName'];
$friendUserNames = str_replace('[','',$friendUserNames);
$friendUserNames = str_replace(']','',$friendUserNames);
$friendUserNames = explode(",", $friendUserNames);
foreach($friendUserNames as $friendUserName){
//your rest of code as it is 
} //and end tag for for loop at appropriate position from your code before the last second else

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM