首页 > 解决方案 > Running two SQL queries on one php page (SET + SELECT)

问题描述

I need translate to "pt_br" the currently month and this code are working like a charm on phpmyadmin:

SET lc_time_names = 'pt_BR';
SELECT MONTHNAME(CURDATE()) AS `Mes`  
                              FROM trabalho_v2 

Someone may help me use the "SET lc_time_names = 'pt_BR';" on my php code?

<?php
// Show current month
include 'conection.php';                      

$sql .= "SELECT MONTHNAME(CURDATE()) AS `Mes` FROM trabalho_v2 ";                       
$busca  = mysqli_query($conexao,$sql);                      
$dados  = mysqli_fetch_array($busca);
$mes = $dados['Mes'];                       

I tried to create a new querie to inject only this stretch but it didn't work:

<?php
// Show current month
include 'conection.php';                      
$sql = "SET lc_time_names = 'pt_BR';";  
$sql .= "SELECT MONTHNAME(CURDATE()) AS `Mes` FROM trabalho_v2 ";                       

$busca  = mysqli_query($conexao,$sql);                      
$dados  = mysqli_fetch_array($busca);
$mes = $dados['Mes'];                       

标签: phpmysqlsqlmysqli

解决方案


这是两个单独的查询。你不能将它们连接在一起。您必须单独执行它们。

<?php

// Show current month
include 'conection.php';
                      
$sql = "SET lc_time_names = 'pt_BR'";
mysqli_query($conexao, $sql);

$sql = "SELECT MONTHNAME(CURDATE()) AS `Mes` FROM trabalho_v2";
$busca = mysqli_query($conexao, $sql);
$dados = mysqli_fetch_array($busca);
$mes = $dados['Mes'];

我也强烈建议你使用 OO 风格:

<?php

// Show current month
include 'conection.php';
                      
$sql = "SET lc_time_names = 'pt_BR'";
$conexao->query($sql);

$sql = "SELECT MONTHNAME(CURDATE()) AS `Mes` FROM trabalho_v2";
$busca = $conexao->query($sql);
$dados = $busca->fetch_array();
$mes = $dados['Mes'];

推荐阅读