2009-04-20 67 views
1

我用下面的代碼來從數據庫的表中檢索數據:PHP/MySQLi:將lc_time_names和DATE_FORMAT()設置爲mysqli查詢?

$check_sql = 'SELECT personID, name, DATE_FORMAT(persons.birthdate, "%d de %M, %Y"), birthplace, countryID FROM persons WHERE personID = ?'; 
    if ($stmt->prepare($check_sql)) { 
     $stmt->bind_param('i', $pid); 
     $stmt->bind_result($personDB, $name, $birthdate, $birthplace, $countryID); 
     $stmt->execute(); 
     $stmt->fetch(); 
    } 

就像你所看到的,在同一時間,我從「出生日期」一欄使用格式的日期到一個更友好的顯示DATE_FORMAT()MySQL函數。現在,我想在西班牙文中顯示月份的全名,所以我想在查詢中插入SET lc_time_names = 'es_ES' ..

我該怎麼辦?我可以將SET lc_time_names添加到$ check_sql變量嗎?

謝謝!

回答

5
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 
$mysqli->query("SET lc_time_names = 'es_ES'"); 
$check_sql = 'SELECT personID, name, DATE_FORMAT(persons.birthdate, "%d de %M, %Y"), birthplace, countryID FROM persons WHERE personID = ?'; 
     if ($stmt = $mysqli->prepare($check_sql)) { 
       $stmt->bind_param('i', $pid); 
       $stmt->bind_result($personDB, $name, $birthdate, $birthplace, $countryID); 
       $stmt->execute(); 
       $stmt->fetch(); 
     } 
1

另一種選擇是返回原始日期/時間,然後用PHP格式化它。

格式化日期之前,可以使用PHP中的setlocale()函數來獲取西班牙語輸出。

這有一個額外的好處,就是不能在mysql中運行一個函數,這可能會比較慢。