Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gsinhorini

Fatal error: Uncaught PDOException: SQLSTATE[42000] [1203]

Recommended Posts

Olá, muito boa tarde!

Estou desenvolvendo uma plicação PHP com Composer, na maquina local está tudo funcionando mas quando eu coloco no servidor esta dando o seguinte erro.

Fatal error: Uncaught PDOException: SQLSTATE[42000] [1203] User meucarr2_admin already has more than 'max_user_connections' active connections in 

 

Vou deixar a minha class de conexão, se algum puder me ajudar. Pois não sei o que fazer.

<?php
namespace Api\Repositories;
use \PDO as PDO;

class Conexao
{
	protected $conn;
	protected $bind;
	
	function __construct()
	{
		//$this->connection();
	}

	function connection(){

        if($_SERVER["HTTP_HOST"]=="localhost"){
			$_username="root";
			$_password="";
			$_server="localhost";
			$_database="liderveiculos";

        }
        else{
        	//dados banco de producao
            // $_username="";
            // $_password="";
            // $_server="";
            // $_database="";

            $_username="";
            $_password="";
            $_server="";
            $_database="";
        }


        try {
            $_conn = new PDO('mysql:host='.$_server.';dbname='.$_database, $_username, $_password);
            // PDO::MYSQL_ATTR_INIT_COMMAND=>"SET NAMES utf8";
            $_conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $_conn->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND,"SET NAMES utf8");
            $_conn->setAttribute(PDO::ATTR_PERSISTENT,TRUE);
            //OUTROS MODOS
            /*
                PDO::ERRMODE_SILENT
                PDO::ERRMODE_WARNING
                PDO::ERRMODE_EXCEPTION
            */
            $this->conn=$_conn;
        } catch(PDOException $e) {
            echo 'ERROR: ' . $e->getMessage();
        }
		
	}

	function select($_sql){
		unset($this->bind);

		$_query='SELECT '.$_sql["fields"].' FROM '.$_sql["tables"];

		if(isset($_sql["where"]) && count($_sql["where"])>0)
		{
			
			$_query.=$this->where($_sql["where"]);
            if(isset($_sql["econdition"]) && $_sql["econdition"]!="")
            {

                $_query.=' AND '.$_sql["econdition"];

            }
		}
		else
		{
			
			if(isset($_sql["econdition"]) && $_sql["econdition"]!="")
			{
				
				$_query.='  '.$_sql["econdition"];

			}	
		}



        if(isset($_sql["order"]) && $_sql["order"]!="")
		{
		
			$_query.=' ORDER BY '.$_sql["order"][0].' '.$_sql["order"][1];

		}
				
		//echo $_query;
        if(isset($this->bind))
		    $results= $this->executeQuery($_query,$this->bind);
        else
            $results= $this->executeQuery($_query);
	
		return $results;

	}

	function where($_where)
	{
		//echo '<pre>';
		//print_r($_where);
		//echo '</pre>';

		//unset($this->bind);
		$_queryWhere="";

		$_operators=array(	'=='=>'=',
							'!='=>'<>',
							'IN'=>'IN ( # )',
							'BETWEEN'=> '( #c BETWEEN #v1 AND #v2 )',
							'>'=>'>=');


		foreach ($_where as $_condition) {
			
			if(trim($_condition[0])=='OR')
			{
				$_increment=' OR ';
			}
			else
			{
				$_increment=' AND ';
			}

			$_findOperator=array_intersect($_condition, array_flip($_operators));
			
			//print_r($_findOperator);
			//echo count($_findOperator);
			if(count($_findOperator)>0)
			{
				foreach ($_findOperator as $_index => $_value) {
					$_op= $_operators[$_value];
					$_keyOperator=$_index;
					//echo $_value;
					//echo $_index;
				}

				//echo $_op;
				//echo $_keyOperator;

				$_keyCondition=array_search(array_search($_op, $_operators), $_condition);
				//print_r(array_search(array_search($_op, $_operators), $_condition));
				//	print_r($_keyCondition);
				//$_op=array_key_exists(key, search)
				//echo '--->'.strstr('#', $_op);


				if(!strstr('#', $_op))
				{
					//echo 2;

					switch ($_value) {
						case 'IN':
									$_queryWhere.=$_increment.' '.$_condition[$_keyCondition-1].' '.str_replace("#",  ' :'.$this->normalizeBind($_condition[$_keyCondition-1]), $_op);	
									$this->parameters($this->normalizeBind($_condition[($_keyCondition-1)]),$_condition[($_keyCondition+1)]);
							break;
						
						case 'BETWEEN':
									$_arrayReplace=array('#c'=>$_condition[$_keyCondition-1],
														 '#v1'=>':'.$this->normalizeBind($_condition[$_keyCondition-1].'_1'),
														 '#v2'=>':'.$this->normalizeBind($_condition[$_keyCondition-1].'_2'));
									
									$_queryWhere.=$_increment.strtr($_op, $_arrayReplace);
									$this->parameters($this->normalizeBind($_condition[$_keyCondition-1].'_1'),$_condition[$_keyCondition+1]);
									$this->parameters($this->normalizeBind($_condition[$_keyCondition-1].'_2'),$_condition[$_keyCondition+2]);

									//echo $_queryWhere.=' '.$_condition[$_keyCondition-1].' '.$_op.' :'.$this->normalizeBind($_condition[$_keyCondition+2]).$_increment;	
									//$this->parameters($_condition[($_keyCondition-1)],$_condition[($_keyCondition+1)]);
							break;
						default:
								//echo 'default';
								$_queryWhere.=$_increment.$_condition[$_keyCondition-1].' '.$_op.' :'.$this->normalizeBind($_condition[$_keyCondition-1]);	
								//echo $_condition[($_keyCondition-1)].'<>'.$_condition[($_keyCondition+1)];
								//echo $this->normalizeBind($_condition[($_keyCondition-1)]).'<>'.$_condition[($_keyCondition+1)];
								$this->parameters($this->normalizeBind($_condition[($_keyCondition-1)]),$_condition[($_keyCondition+1)]);
							break;
					}

					// $_queryWhere.=' '.$_condition[$_keyCondition-1].' '.$_op.' :'.$this->normalizeBind($_condition[$_keyCondition-1]).$_increment;	
					// $this->parameters($_condition[($_keyCondition-1)],$_condition[($_keyCondition+1)]);
				}
				else
				{
					// echo  ' '.$_condition[$_keyCondition-1].' '.$_op.' '.$_increment;
					$_queryWhere.=$_increment.str_replace('#', ' :'.$this->normalizeBind($_condition[$_keyCondition-1]).' ', ' '.$_condition[$_keyCondition-1].' '.$_op);						
					$this->parameters($this->normalizeBind($_condition[($_keyCondition-1)]),$_condition[($_keyCondition+1)]);	

				}
				
			}
			else
			{
				 $_queryWhere.=$_increment.' '.$_condition[0].' = :'.$this->normalizeBind($_condition[0]);
				$this->parameters($this->normalizeBind($_condition[0]),$_condition[1]);
			}

			
			
		}

		return ' WHERE '.substr($_queryWhere,4);

	}

	function parameters($_index,$_value)
	{
		//echo $_index.'<->'.$_value;
		$this->bind[':'.$_index]=utf8_decode($_value);
	}
	function normalizeBind($_string)
	{
		return str_replace(".", "_", $_string);
	}

	function executeQuery($_query,$_bind=null)
	{

 		/*echo '<pre>';
 		echo $_query;
 		echo '<br/>';
 		print_r($_bind);
 		echo '</pre>';*/

		try {
			$this->connection();
		
			//echo $_query;
			$_sql=$this->conn->prepare($_query);
			
			$this->conn->beginTransaction(); 

			$_result=$_sql->execute($_bind);			

		//var_dump($_sql);
		//exit();

			$_tipoQuery=strtoupper(substr(trim($_query),0,6));

			if($_tipoQuery=='SELECT' )
			{
				$_resultado=array();
                while($_row=$_sql->fetch(PDO::FETCH_ASSOC)) {
                    $_resultado[]=array_map('utf8_encode',$_row);
                    //$_resultado[]=$_row;
                }

                $this->conn->commit();
			   // var_dump($_resultado);
			    return $_resultado;
			}
			elseif($_tipoQuery=='INSERT'){
				//$_sql->commit();
				//oracle não possui
				$_ultimoId= $this->conn->lastInsertId();

				$this->conn->commit();
				return $_ultimoId;
				//return true;
			}
			elseif($_tipoQuery=='DELETE'){
				//$_sql->commit();
				//$_ultimoId= $this->conn->lastInsertId();

				$this->conn->commit();
				return true;

			}
			elseif($_tipoQuery=='UPDATE'){
				//$_sql->commit();
				//$_ultimoId= $this->conn->lastInsertId();
				
			
				$this->conn->commit();
				return true;
			
			}
			else{
				return $_result;
			}
			$this->conn->close();
			
		} catch(PDOException $e) {
            $this->conn->rollBack();

            echo 'ERROR: ' . $e->getMessage();
		    echo '<br/>';
		    echo 'Query:'.$_query;
		    echo '<br/>';
		    echo 'Bind:';
		    print_r($_bind);
		    echo '<pre>';
		    //print_r($e);
		    echo '</pre>';
		    $this->conn->close();
		}
		
	}

	function update($_sql)
	{
		unset($this->bind);
		$_query='UPDATE '.$_sql["tables"].' SET ';
		$_set="";
		$key="";
		foreach ($_sql["set"] as $key => $value) {
			//$this->parameters('1',1);
			$_set.=''.$key.'= :'.$key.'_ , ';
			//echo $this->normalizeBind($key.'_').'->'.$value;
			$this->parameters( $this->normalizeBind($key.'_'),  $value);	
		}

		$_query.=substr($_set,0,-2);

		if($_sql["where"] && count($_sql["where"])>0)
		{
			$_query.=$this->where($_sql["where"]);
		}
		else
		{
			$_query.=' WHERE '.$_sql["econdition"];
		}

		//$_query.=$_sql["econdition"];
		//echo $_query;
		//print_r($this->bind);

		return $this->executeQuery($_query,$this->bind);
	}


	function insert($_sql)
	{
		unset($this->bind);
		$_query='INSERT INTO '.$_sql["tables"].' ';

		$_into="";
		$_value="";

		foreach ($_sql["values"] as $key => $value) {
			//$this->parameters('1',1);
			$_into.=$key.' , ';
			$_value.=':'.$key.' , ';
			//echo $this->normalizeBind($key.'_').'->'.$value;
			$this->parameters( $this->normalizeBind($key),  $value);	
		}

		$_query.='('.substr($_into,0,-2).') VALUES ('.substr($_value,0,-2).')';

		return $this->executeQuery($_query,$this->bind);

	}

	function delete($_sql)
	{
		unset($this->bind);
		$_query='DELETE FROM '.$_sql["tables"].' ';

		if($_sql["where"] && count($_sql["where"])>0)
		{
			
			$_query.=$this->where($_sql["where"]);
		}
		else
		{
			
			if(isset($_sql["econdition"]) && $_sql["econdition"]!="")
			{
				
				$_query.=' WHERE '.$_sql["econdition"];

			}	
		}
		
		//return $_query;
		return $this->executeQuery($_query,$this->bind);


	}

	
}



?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera, tudo bem?
       
      Tenho o seguinte codigo:
       
       class Data {
      public static function ExibirTempoDecorrido($date)
      {
          if(empty($date))
          {
              return "Informe a data";
          }
          $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
          $duracao = array("60","60","24","7","4.35","12","10");
          $agora = time();
          $unix_data = strtotime($date);
          // check validity of date
          if(empty($unix_data))
          {  
              return "Bad date";
          }
          // is it future date or past date
          if($agora > $unix_data) 
          {  
              $diferenca     = $agora - $unix_data;
              $tempo         = "atrás";
          } 
          else 
          {
              $diferenca     = $unix_data - $agora;
              $tempo         = "agora";
          }
          for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) 
          {
              $diferenca /= $duracao[$j];
          }
          $diferenca = round($diferenca);
          if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
          return "$diferenca $periodos[$j] {$tempo}";
      }
      }
       
      Funciona redondinho se o valor retornado for de algumas horas, mas...
      Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha
      if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
       
      Quero que modre:
       
      2 meses atrás
      e não
      2 mess atrás.
       
      Espero que tenham entendido.
       
      Valeu
    • Por Carlos Web Soluções Web
      Olá...
      Estou tentando fazer o seguinte !!
      Listando dados em tabela !!
      Gostaria que....se na listagem houver 4 linhas...indepedente de seu número de ID, faça a listagem em ID ser em ordem 1 2 3 4 !!
      Exemplo...se tiver uma listagem de dados que está em ID 1 3 3...faça ficar 1 2 3 !!

       
      echo "<table class='tabela_dados' border='1'> <tr> <td>ID</td> <td>Nome Empresa</td> <td>Responsável</td> <td>Telefone 1</td> <td>Telefone 2</td> <td>E-mail 1</td> <td>E-mail 2</td> <td>Endereço</td> <td>CEP</td> <td>Bairro</td> <td>AÇÃO 1</td> <td>AÇÃO 2</td> </tr> "; $sql = "SELECT ID FROM usuarios_dados WHERE Usuario='$usuario'"; $result = $conn->query($sql); $num_rows = $result->num_rows; $Novo_ID = 1; for ($i = 0; $i < $num_rows; $i++) { $registro = $result -> fetch_row(); $sql2 = "UPDATE usuarios_dados SET ID='$Novo_ID' WHERE ID='$Novo_ID'"; $result2 = $conn->query($sql2); $Novo_ID++; } $sql = "SELECT * FROM usuarios_dados"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "<tr> <td>$row[ID]</td> <td>$row[Nome_Empresa]</td> <td>$row[Responsavel]</td> <td>$row[Telefone_1]</td> <td>$row[Telefone_2]</td> <td>$row[Email_1]</td> <td>$row[Email_2]</td> <td>$row[Endereço]</td> <td>$row[CEP]</td> <td>$row[Bairro]</td> <td> <form method='post' action='Editar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='EDITAR'> </form> </td> <td> <form method='post' action='Deletar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='DELETAR'> </form> </td> </tr> "; } } else { echo "0 results"; } $conn->close();  
    • Por ILR master
      Boa tarde pessoal, tudo bem ?
       
      Eu uso o tinymce para cadastro de textos no meu siite, porém, quero fazer um sistema para que os colunistas possam fazer o próprio post.
      O problema do tinymce, é que ele mantém a formatação do texto copiado, como tamanho de fonts, negritos, etc... Quero que o usuário cole o texto e a própria textarea limpe a formatação para que ele formate como quiser.
       
      A pergunta é:
       
      O tinymce tem uma opção para desabilitar a formatação quando um texto é colocado?
      Tem alguma função via java ou php para retirar a formatação assim que o texto é colado?
      Ou é melhor usar um outro editor?
       
      Agradeço deste já.
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por ILR master
      Fala pessoal.
       
      Seguinte:
       
      Quero selecionar duas tabelas e mostrar com resultados intercalados. Abaixo segue um código explicando para vcs terem uma ideia.
       
      $consulta = "SELECT A.*, B.* FROM tabela1 A, tabela2 B'";
      $resultado = mysqli_query($conexao, $consulta) or die ("erro");
      while($busca = mysqli_fetch_array($resultado)){
       
      print $busca['cod_evento']; --> traz o código da tabela1 
      print $busca['titulo_evento']; -->  traz o titulo da tabela1
      print $busca['cod_noticia']; --> traz o código da tabela2
      print $busca['titulo_noticia']; --> traz o tituloda tabela2
       
      }
       
      Espero que entendam. Grato
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.