Jump to content
  • 0
Hugo Andre Carvalho

Código PHP para conexão com BD MySQL com erro "No Database selected"

Question

Boa tarde.. Sou muito iniciante no PHP e procurava algum código que me possibilitasse conectar e extrair os dados do meu banco MySQL de um servidor no qual está rodando o GLPI! 

Pesquisando na internet achei o código abaixo, mas por alguma razão ele me retorna o erro "No Database selected" e já testei com outros códigos de conexão e funcionaram perfeitamente!

Me ajudem por favor e agradeço desde já!

 

Segue o código:

<?php

function AcessaMySQL($servidor, $usuario, $senha, $database){
 mysql_connect($servidor, $usuario, $senha) or die (mysql_error());
 mysql_select_db($database) or die (mysql_error());
}

/* Chama a função */
AcessaMysql('192.168.191.000', 'root', '123456', 'tp_glpi');

// Definimos o nome do arquivo que será exportado
$arquivo = 'glpi.xls';

// Configurações header para forçar o download
header ("Expires: Mon, 12 Set 2010 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
header ("Content-type: application/x-msexcel");
header ("Content-Disposition: attachment; filename=\"{$arquivo}\"" );
header ("Content-Description: PHP Generated Data" );

echo '<table border=1><tr><td colspan="10" align=center><b>Chamados Registrados no GLPI</b></td></tr>';

echo '<tr>';
echo '<td><b>ID</b></td>';
echo '<td><b>Título</b></td>';
echo '<td><b>Aberto em?</b></td>';
echo '<td><b>Fechado em?</b></td>';
echo '<td><b>Última Modificação</b></td>';
echo '<td><b>Status</b></td>';
echo '<td><b>Usuário</b></td>';
echo '<td><b>Grupo</b></td>';
echo '<td><b>Técnico</b></td>';
echo '</tr>';

$query = "SELECT
 Chamados.ID,
 Chamados.name AS 'Titulo',
 DATE_FORMAT(Chamados.date, GET_FORMAT(DATE,'EUR')) AS 'Aberto em?',
 DATE_FORMAT(Chamados.closedate, GET_FORMAT(DATE,'EUR')) AS 'Fechado em?',
 DATE_FORMAT(Chamados.date_mod, GET_FORMAT(DATE,'EUR')) AS 'Última Mod.',
 Chamados.status AS 'Status',
 Usuarios.realname 'Usuário',
 Grupos.name AS 'Grupo',
 Tecnicos.realname AS 'Técnico',
 Chamados.contents AS 'Descrição'
 FROM glpi_tracking AS Chamados
 INNER JOIN glpi_users AS Usuarios ON(Chamados.author = Usuarios.ID)
 INNER JOIN glpi_users AS Tecnicos ON(Chamados.assign = Tecnicos.ID)
 INNER JOIN glpi_groups AS Grupos ON(Chamados.FK_group = Grupos.ID);";

$resultado = mysql_query($query);

while($row = mysql_fetch_row($resultado)){
 echo '<tr>';
 echo '<td>'. $row[0] .'</td>';
 echo '<td>'. $row[1] .'</td>';
 echo '<td>'. $row[2] .'</td>';
 echo '<td>'. $row[3] .'</td>';
 echo '<td>'. $row[4] .'</td>';
 echo '<td>'. $row[5] .'</td>';
 echo '<td>'. $row[6] .'</td>';
 echo '<td>'. $row[7] .'</td>';
 echo '<td>'. $row[8] .'</td>';

 echo '</tr>';
}

echo '</table>';
?>

 

 

Edited by Gabriel Heming
adicionar formatação de código

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Tenta assim:

 

$connect = null;
function AcessaMySQL($servidor, $usuario, $senha, $database){
	if (empty($connect)) {
      $connect = mysql_connect($servidor, $usuario, $senha) or die (mysql_error());
      mysql_select_db($database, $connect) or die (mysql_error());
	}
}

para maiores informações: 

mysql_select_db()

  • Obrigado! 1

Share this post


Link to post
Share on other sites
  • 0

Funções mysql_* foram descontinuadas na versão 5.5 e removidas na versão 7.

 

Utilize MySQLi ou PDO:

http://rberaldo.com.br/como-atualizar-php-mysql-mysqli/

  • Obrigado! 1

Share this post


Link to post
Share on other sites
  • 0

Vlw kkumayama, mas não deu certo!

 

Gabriel Heming, substitui conforme sugerido e meu código ficou assim:

 

<?php
 
 $servidor = '192.168.191.138:3306';
 $usuario = 'glpin';
 $senha = 'glpinpass';
 $database = 'glpi';
 $con = mysqlI_connect($servidor, $usuario, $senha, $database) or die (mysql_error());
 
// Definimos o nome do arquivo que será exportado
$arquivo = 'glpi.xls';
 
// Configurações header para forçar o download
header ("Expires: Mon, 20 Set 2017 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
header ("Content-type: application/x-msexcel");
header ("Content-Disposition: attachment; filename=\"{$arquivo}\"" );
header ("Content-Description: PHP Generated Data" );
 
echo '<table border=1><tr><td colspan="10" align=center><b>Chamados Registrados no GLPI</b></td></tr>';
 
echo '<tr>';
echo '<td><b>ID</b></td>';
echo '<td><b>Título</b></td>';
echo '<td><b>Aberto em?</b></td>';
echo '<td><b>Fechado em?</b></td>';
echo '<td><b>Última Modificação</b></td>';
echo '<td><b>Status</b></td>';
echo '<td><b>Usuário</b></td>';
echo '<td><b>Grupo</b></td>';
echo '<td><b>Técnico</b></td>';
echo '</tr>';
 
$query = "SELECT
 Chamados.ID,
 Chamados.name AS 'Titulo',
 DATE_FORMAT(Chamados.date, GET_FORMAT(DATE,'EUR')) AS 'Aberto em?',
 DATE_FORMAT(Chamados.closedate, GET_FORMAT(DATE,'EUR')) AS 'Fechado em?',
 DATE_FORMAT(Chamados.date_mod, GET_FORMAT(DATE,'EUR')) AS 'Última Mod.',
 Chamados.status AS 'Status',
 Usuarios.realname 'Usuário',
 Grupos.name AS 'Grupo',
 Tecnicos.realname AS 'Técnico',
 Chamados.contents AS 'Descrição'
 FROM glpi_tracking AS Chamados
 INNER JOIN glpi_users AS Usuarios ON(Chamados.author = Usuarios.ID)
 INNER JOIN glpi_users AS Tecnicos ON(Chamados.assign = Tecnicos.ID)
 INNER JOIN glpi_groups AS Grupos ON(Chamados.FK_group = Grupos.ID);";
 
$resultado = mysqli_query($con, $query);
 
while($row = mysqli_fetch_row($resultado)){
 echo '<tr>';
 echo '<td>'. $row[0] .'</td>';
 echo '<td>'. $row[1] .'</td>';
 echo '<td>'. $row[2] .'</td>';
 echo '<td>'. $row[3] .'</td>';
 echo '<td>'. $row[4] .'</td>';
 echo '<td>'. $row[5] .'</td>';
 echo '<td>'. $row[6] .'</td>';
 echo '<td>'. $row[7] .'</td>';
 echo '<td>'. $row[8] .'</td>';
 
 echo '</tr>';
}
 
echo '</table>';
?>

Porem agora esta dando o erro "Warning: mysqli_fetch_row() expects parameter 1 to be mysqli_result, boolean given", se não me engano o erro esta nessa parte do código:

while($row = mysqli_fetch_row($resultado)){
 echo '<tr>';
 echo '<td>'. $row[0] .'</td>';
 echo '<td>'. $row[1] .'</td>';
 echo '<td>'. $row[2] .'</td>';
 echo '<td>'. $row[3] .'</td>';
 echo '<td>'. $row[4] .'</td>';
 echo '<td>'. $row[5] .'</td>';
 echo '<td>'. $row[6] .'</td>';
 echo '<td>'. $row[7] .'</td>';
 echo '<td>'. $row[8] .'</td>';
 
 echo '</tr>';
}
 
echo '</table>';
?>

Como posso resolver?..

Obrigado!

Edited by Gabriel Heming
adicionar formatação de código

Share this post


Link to post
Share on other sites
  • 0

Quando a query a ser executa não está correta (ocorre algum erro, etc...) a função mysqli_query retorna false. Execute diretamente no banco de dados a query e verifique qual é o erro:

 

https://secure.php.net/manual/en/mysqli.query.php

Citar

Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.

 

 

  • Obrigado! 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By dutopfave
      Boa Noite Galera, estou com dúvida em como cria um cadastra de VARIAÇÕES DE PRODUTOS.

      Ex.: Tenho um produto que é um TENIS, ai nele vou criar as VARIAÇÕES, então vou usa COR e TAMANHO.
      COR: preto, verde, azul
      TAMANHO: 39, 40, 41

      até ai blz, porém a duvida é como fazer o cadastrado de combinações de cor e tênis, tipo no banco de dados teria q fica exatamente assim....

      ID | COR | TAMANHO
      ... | preto | 39
      ... | preto | 40
      ... | preto | 41
      ... | verde | 39
      ... | verde | 40
      ... | verde | 41
      ... | azul | 39
      ... | azul | 40
      ... | azul | 41

      alguém tem alguma solução
    • By lucianfpaula
      Olá amigos, tenho uma duvida talvez simples mas não para mim hehehe. estou desenvolvendo um sistema onde a pessoa faz um cadastro simples mas preciso de uma função que não permita que a pessoa faça mais de um cadastro pelo dispositivo dela, tipo ela faz pelo celular dela com nome, email etc... mas preciso limitar o cadastro não apenas pelo email mas também pelo dispositivo, ou seja preciso de uma forma de identificar o aparelho para que não haja mais cadastro pelo mesmo dispositivo. Não sei se ficou claro minha duvida, alguém pode me ajudar? Muito grato
    • By RodrigoWD3
      Pessoal boa tarde, estou criando uma galeria com categorias no php e mysql, gostaria de saber como faço para colocar um botão -  Exibir Mais Fotos - fazendo exibir o restante dos registros na mesma pagina, teria alguma forma de limitar as fotos sem usar o LIMIT do sql? pode ser usando jQuery algo assim , obrigado
    • By Jack Oliveira
      Ola galera boa noite
      Pessoal preciso enviar um arquivo por e-mail, onde o sistema faz backups do banco de dados manual e automatico
       
      preciso que seja enviado apenas o sql que for gerado tanto manual quanto automatico
      ambos esta fazendo o backups normalmente sem problemas
       
      Segue o código a baixo
       
      <?php session_start(); require_once('../../database/config.php'); require_once('../../database/config.database..php'); require_once('../../includes/funcoes.php'); require_once('controller.php'); if (!is_dir('../../backups')) { @mkdir('../../backups', 0777, true); } $name_backup = "Backups_" . date("ymdHis"); $querySQL = DBCreate('backups', [ 'name' => "Banco_de_dados_" . $name_backup, 'type' => 'sql', 'status' => 'Iniciado' ], true); $queryZIP = DBCreate('backups', [ 'name' => "Arquivos_ZIP_" . $name_backup, 'type' => 'zip', 'status' => 'Iniciado' ], true); try { require_once("Mysqldump.php"); $dump = new Ifsnop\Mysqldump\Mysqldump('mysql:host=' . DB_HOSTNAME . ';dbname=' . DB_DATABASE . '', '' . DB_USERNAME . '', '' . DB_PASSWORD . ''); $dump->start("../../backups/Banco_{$name_backup}.sql"); if (file_exists("../../backups/Banco_{$name_backup}.sql")) { DBUpdate('backups', array('status' => 'concluido'), "id = '{$querySQL}'"); } } catch (\Exception $e) { $return = [ "title" => "Oops!", "msg" => "Erro ao exportar banco de dados.", "icon" => "error" ]; DBUpdate('backups', array('status' => 'Erro ao exportar banco de dados'), "id = '{$querySQL}'"); Redireciona('?erro'); } try { $filename = "Arquivos_ZIP_{$name_backup}.zip"; $rootPath = realpath('../../wa/'); $zip = new ZipArchive(); $zip->open("../../backups/$filename", ZipArchive::CREATE | ZipArchive::OVERWRITE); $files = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($rootPath), RecursiveIteratorIterator::LEAVES_ONLY ); foreach ($files as $name => $file) { if (!$file->isDir()) { $filePath = $file->getRealPath(); $relativePath = substr($filePath, strlen($rootPath) + 1); $zip->addFile($filePath, $relativePath); } } $zip->close(); } catch (\Exception $e) { $return = [ "title" => "Oops!", "msg" => "Erro ao criar arquivo de backup no formato zip!", "icon" => "error" ]; DBUpdate('backups', array('status' => 'Erro ao criar arquivo de backup no formato zip'), "id = '{$queryZIP}'"); } DBUpdate('backups', array('status' => 'concluido'), "id = '{$queryZIP}'"); if (empty($return)) { $return = [ "title" => "Deu Certo!", "msg" => "Backup Realizado com Sucesso!", "icon" => "success" ]; } echo json_encode($return); if (!empty(getConfigBackup('mail_notify'))) { @require_once('../../controller/class.phpmailer/PHPMailerAutoload.php'); $mail = new PHPMailer(); $mail->CharSet = "UTF-8"; $mail->isSMTP(true); $mail->SMTPSecure = getConfigBackup('mail_seguranca'); $mail->Host = getConfigBackup('mail_host'); $mail->Username = getConfigBackup('mail_email'); $mail->Password = getConfigBackup('mail_senha'); $mail->Port = getConfigBackup('mail_porta'); $mail->From = getConfigBackup('mail_email'); $mail->FromName = ConfigPainel('site_nome'); $mail->Subject = "Seu Backup está pronto!"; if (strstr(getConfigBackup('mail_notify'), ';')) { $email = explode(';', getConfigBackup('mail_notify')); foreach ($email as $key => $value) { $mail->AddAddress($value); } } else { $mail->AddAddress(getConfigBackup('mail_notify')); } $dados = "Olá, o Backup do painel " . ConfigPainel('site_nome') . " foi realizado com sucesso. Ele está disponível em seu dashboard na área de backups. Acesse o Painel para Gerenciar seus backups."; $mail->Body = "<div id='m_-7598057918015146334m_-2331253013811829785wrapper' dir='ltr' style='background-color:#f7f7f7;margin:0;padding:70px 0 70px 0;width:100%'> <table border='0' cellpadding='0' cellspacing='0' height='100%' width='100%'> <tbody> <tr> <td align='center' valign='top'> <div id='m_-7598057918015146334m_-2331253013811829785template_header_image'></div> <table border='0' cellpadding='0' cellspacing='0' width='600' id='m_-7598057918015146334m_-2331253013811829785template_container' style='background-color:#ffffff;border:1px solid #dedede;border-radius:3px!important'> <tbody> <tr> <td align='center' valign='top'> <table border='0' cellpadding='0' cellspacing='0' width='600' id='m_-7598057918015146334m_-2331253013811829785template_header' style='background-color:#333333;border-radius:3px 3px 0 0!important;color:#ffffff;border-bottom:0;font-weight:bold;line-height:100%;vertical-align:middle;font-family:&quot;Helvetica Neue&quot;,Helvetica,Roboto,Arial,sans-serif'> <tbody> <tr> <td id='m_-7598057918015146334m_-2331253013811829785header_wrapper' style='padding:36px 48px;display:block'> <h1 style='color:#ffffff;font-family:&quot;Helvetica Neue&quot;,Helvetica,Roboto,Arial,sans-serif;font-size:30px;font-weight:300;line-height:150%;margin:0;text-align:left'>Backup Realizado com sucesso</h1> </td> </tr> </tbody> </table> </td> </tr> <tr> <td align='center' valign='top'> <table border='0' cellpadding='0' cellspacing='0' width='600' id='m_-7598057918015146334m_-2331253013811829785template_body'> <tbody> <tr> <td valign='top' id='m_-7598057918015146334m_-2331253013811829785body_content' style='background-color:#ffffff'> <table border='0' cellpadding='20' cellspacing='0' width='100%'> <tbody> <tr> <td valign='top' style='padding:48px'> <div id='m_-7598057918015146334m_-2331253013811829785body_content_inner' style='color:#636363;font-family:&quot;Helvetica Neue&quot;,Helvetica,Roboto,Arial,sans-serif;font-size:14px;line-height:150%;text-align:left'> <p style='margin:0 0 16px'></p> $dados </div> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> </div>"; $mail->IsHTML(true); $mail->Send(); $mail->ClearAllRecipients(); $mail->ClearAttachments(); } Lembrando so ser enviado o que for sql
      Ex: Banco_de_dados_Backups_210412193634.sql
      SQL_Backup_210412180942.sql
       
      Conforme for gerando o backups
      no create tem type sql
       
       
      Não sei isso vai ajudar em algo mais a tabela  backups esta assim
       
      INSERT INTO `backups` (`id`, `name`, `type`, `created_at`, `status`) VALUES (1, 'SQL_Backup_210412180942', 'sql', '2021-04-12 21:09:42', 'concluido'), (2, 'ZIP_Backup_210412180942', 'zip', '2021-04-12 21:09:42', 'Iniciado'), (3, 'Banco_de_dados_Backups_210412193634', 'sql', '2021-04-12 22:36:34', 'concluido'), (4, 'Arquivos_ZIP_Backups_210412193634', 'zip', '2021-04-12 22:36:34', 'Iniciado');  
       
      Se puderem da esta ajuda fico grato
    • By henriquers
      Estou com um problema com o Select2, ele tem um campo de busca mas não esta filtrando corretamente e não estou entendo o motivo, sem utilizar o AJAX colocando os options manualmente ele funciona corretamente, mas trazendo os dados via AJAX ele não funciona o campo de busca.
      Se aguem poder me dar uma luz agradeço a ajuda.
       

       
      Nessa imagem estou tentando filtrar apenas para os itens que tenha LUVA na descrição, mas não funciona, posso colocar qual quer coisa que ele não faz o filtro
       
      Abaixo segue meu codigo
       
      HTML
      <!DOCTYPE HTML PUBLIC> <HTML> <HEAD> <TITLE> Select2 </TITLE> <link href="select2/select2.css" rel="stylesheet" type="text/css" /> <script src="https://code.jquery.com/jquery-latest.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/js/i18n/pt-BR.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/js/select2.js"></script> <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/css/select2.css" rel="stylesheet"/> <script> $(document).ready(function(){ $("#selUser").select2({ language: "pt-br", ajax: { url: "get_dados.php", type: "GET", dataType: 'json', delay: 200, data: function (params) { return { q: params.term, // search term page: params.page }; }, processResults: function (response) { return { results: response }; }, cache: true }, width: "20%", closeOnSelect: true, }); }); </script> </head> <body> <select id='selUser' style='width: 200px;'> <option value='0'>- Search user -</option> </select> </body> </html> get_dados.php
      <?php include './conn_orcl.php'; $select="SELECT PRO_CODPRO PRODUTO,TRIM(PRO_DESCRI) DESCRICAO FROM F_PRODS WHERE PRO_LOCEST='ALMOX' AND PRO_STATUS = 'AT' ORDER BY DESCRICAO"; $parse=oci_parse($conn,$select); oci_execute($parse); $data = array(); while($row=oci_fetch_array($parse)){ $data[] = array("id"=>$row['PRODUTO'], "text"=>$row['PRODUTO']." - ".$row['DESCRICAO']); }; echo json_encode($data); ob_end_flush(); oci_free_statement($parse); oci_close($conn); ?>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.