2009-04-20 33 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中运行一个函数,这可能会比较慢。