2012-03-06 16 views
0

我想insert/update數據到MySQL表通過使用csv般的數據:如何將字符串轉換爲PHP中的整數?

function execInsertOrUpdateCompteRendu($compterendu) // here $compterendu is something like this : -1;2012/03/06 09h 50mn;3;1; 
{ 
     $resultat = explode("\n",$compterendu); 
     $connec = mysql_connect("192.168.1.123:3306","root", "mysqlroot"); 
     mysql_set_charset('utf8', $connec); 
     mysql_select_db("finance",$connec); 
     for($i = 0; $i < count($resultat) ; $i++) 
     { 
      $valeur=explode(";",$resultat[$i]); 
      if ($valeur[0] > 0) 
      { 
       $requete = mysql_query("UPDATE compte_rendu SET 
       cr_date = '".convertFromDateHM($valeur[1])."', 
       cr_lieu = '".$valeur[2]."', 
       cred_id = '".$valeur[3]."', 
       cr_resultat = '".$valeur[5]."', 
       cr_comment = '".$valeur[6]."', 
       adc_id = '".$valeur[7]."' 
       WHERE cr_id = '".$valeur[0]."'"); 
      } 
      else 
      { 
       $requete = mysql_query("INSERT INTO compte_rendu SET 
             cred_id = '".$valeur[3]."', 
             cr_date = '".convertFromDateHM($valeur[1])."', 
             cr_lieu = '".$valeur[2]."', 
             cr_resultat = '".$valeur[5]."', 
             cr_comment = '".$valeur[6]."', 
             adc_id = '".$valeur[7]."'"); 
      } 
     } 
     return $resultat[0]; 
} 

PHP代碼是一個web-service這是我從一個J2ME客戶端調用。問題是當我運行J2ME應用程序時,新數據沒有插入到表中!我調試了Java程序,並且沒有錯誤。那麼我的PHP代碼有什麼問題?

+0

最終查詢的外觀如何?你檢查了'mysql_error'是否有錯誤? – deceze 2012-03-06 07:01:51

+0

在服務器錯誤日誌中是否有任何錯誤?如果是的話,請把它們發佈到你的問題 – DKSan 2012-03-06 07:03:30

+0

你包裹一切你插入一個引號/更新您的查詢(不需要)。我會假設你正在談論關於string-> integer的ID。因此,在一些路段,你應該有'adc_id =」 $ valeur [7]。 「',而不是'adc_id =「」。$ valeur [7]。「」'。然而,對於初學者,你應該使用預處理語句 – Kurt 2012-03-06 07:14:24

回答

0

首先,你可以嘗試逃離你進入你的數據庫mysql_real_escape_string的所有文本 - 否則,你要離開的潛力來出現的問題。例如

//cr_lieu = '".mysql_real_escape_string($valeur[2])."', 

此外 - 要將字符串轉換爲整數?

$int = (int)$string; 
1

使用MySQLi的預處理語句。然後,您可以將參數綁定爲整數,雙精度,字符串或斑點。有一個讀Mysqli Manual,並在問候裝訂bind_param部分。

關於您的查詢:您不應該將整數值包含在引號中