簡體   English   中英

PHP將4個數據保存到MySQL數據庫而不是我的SMS網關API中的2個

[英]Php save 4 data to mysql db instead of 2 in my sms gateway api

我正在使用向我的注冊用戶發送短信(而非電子郵件)的php sms API。 因此,在我的html表單中,有一個選項可以通過上載所有聯系人的文件來發送短信。 成功發送短信后,我將其保存到mysql db。

好了,現在一切都很好,但是在我的.txt文件( 通過上傳.txt文件發送短信 )中存在2個聯系人。 因此它必須在我的數據庫表中保存2個數據。 但不幸的是,它已將4個數據保存到db中。 我不明白問題出在哪里。 您能告訴我為什么保存4個數據嗎?

我的PHP代碼:

$file_handle = fopen("$file", "r");
while (!feof($file_handle) )
{
$line_of_text = fgetcsv($file_handle, 1024);
$line_of_text[0]=$line_of_text[0];       
$obj = new Sender("websms.dnstel.com","my port","my username","my password","$sender", "$msg",    
$line_of_text[0],"2","1"); 
$obj->Submit();     
$success_number[]=$line_of_text[0];

//saved sms to db
$sql = mysql_query("INSERT INTO e_sent_sms VALUES('', '$line_of_text[0]', '$msg', '', '',   
'$length', '$type', '$sender', '$current_date', '$ip' )");
}
echo "<div class='success'>Successfully sent your message to " . implode(',',$success_number) ." 
Thank You.</div>";
fclose($file_handle);

.txt文件

8801674455258
8801674455852

謝謝。

將您的while語句更改為:

while(($line_of_text = fgetcsv($file_handle, 0)) !== FALSE)

並刪除:

$line_of_text = fgetcsv($file_handle, 1024);

如果檢查!feof($file_handle)並且文件中有空格,則條件變為有效。 如果使用fgetcsv($file_handle) ,它將從csv / text獲取該行(如果為空),則為NULL如果為有效,則為數組格式的值(可用於處理結果)。

因此您的代碼應如下所示:

while (($line_of_text = fgetcsv($file_handle,1024)) && $line_of_text[0])
{      
  //$obj = new Sender("websms.dnstel.com","my port","my username","my password","$sender", "$msg", $line_of_text[0],"2","1"); 
  //$obj->Submit();     
  //$success_number[]=$line_of_text[0];

  //saved sms to db
  $sql = mysql_query("INSERT INTO e_sent_sms VALUES('', '$line_of_text[0]', '$msg', '', '','$length', '$type', '$sender', '$current_date', '$ip' )");
}

暫無
暫無

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

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