2009-04-20 1 views
1

私は、データベース内のテーブルからデータを取得するために、次のコードを使用します。PHP/MySQLi:mysqliクエリにlc_time_namesとDATE_FORMAT()を設定しますか?

$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'をクエリに挿入します。

どうすればいいですか? $ check_sql変数にSET lc_time_namesを追加できますか?

ありがとうございます!

答えて

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

もう1つの方法は、生の日付/時刻を返して、PHPでフォーマットすることです。

日付を書式設定する前に、PHPでsetlocale()関数を使用してスペイン語の出力を取得できます。

これには、mysqlで関数を実行しないという利点があります。これは遅くなる可能性があります。

関連する問題