2014-01-20 45 views
1

我是一名PHP開發人員。最近,我使用ext.js和PHP爲我的操作製作了一些UI。這個UI可以添加一個人的個人資料。 現在,我的問題是,每當我將一個人的個人資料名稱添加到UI並以空格字符開頭時,數據仍然會與空格字符一起保存。我想要的只是從語句的開始或結尾添加空格時,必須有一個catch。PHP中的捕捉空間

這是我到目前爲止已經試過:

public function executeAddRegion(sfWebRequest $request) 
    { 
     try{ 
$by = $_SESSION['employee_id']; 
$now = date("Y-m-d H:I:s"); 

    $description = strip_tags(pg_escape_string($request->getParameter("description"))); 



// $description = $request->getParameter("description"); 

    $query = "insert into country.regions 
        (description,created_by,date_created) 
       values 
        ('".$description."', $by,'$now')"; 

    $msg = "New Region Successfully Saved."; 

    $this->conn->execute($query); 

    $data['success']=true; 
    $data['msg']=$msg; 

    } 
    catch(Exception $e) 
    {  
    $data['success']=false; 
    $data['msg']=$e->getMessage(); 

    } 
    die(json_encode($data)); 

} 
+2

你是什麼意思「抓住」?您是否希望具有前導空格或尾隨空格的輸入數據驗證失敗,還是隻想自動修剪空白?我也不知道你的代碼示例與你的問題有什麼關係。也許是我的,但我看不到你在哪裏輸入需要檢查空格的用戶名。 –

+1

在將信息保存到數據庫之前,只需使用'trim()'。此外,您有嚴重的SQL注入風險。你應該使用參數化查詢。 –

+0

@Mike Brant我只使用了那個樣本的區域,但是它與用戶名一樣,我想要的是如果在開始或結束時有空格字符,則驗證失敗。 – sack

回答

2

使用修剪除去前/後間隔。
使用ltrim(左修剪)刪除前導空格。
使用rtrim(右修剪)刪除尾隨空格。

$data = " hello "; 

$data = trim($data); // "hello" 
$data = ltrim($data); // "hello " 
$data = rtrim($data); // " hello" 

在將數據插入數據庫之前執行此操作。

編輯:如果你想測試是否有空間,你可以這樣做:

if (trim($data) == $data) 
{ 
    // OK 
} 
else 
{ 
    // data contained some spaces (leading or trailing) 
} 
2

你也可以插入前或使用MySQL trim字符串函數,而選擇