Jump to content

Recommended Posts

Posted

Boa tarde,

Gostaria de saber como é que posso verificar se uma determinada tabela existe.

Sou iniciante em PHP, já tentei alguns exemplos que vi na internet mas sempre com erros... Bem ou então é da minha inexperiência.

Obrigado.

Posted
<?php
 // Cria Ligação à Base de dados
$con=mysqli_connect("xxx","yyy","zzz","aaa");

// Verifica Ligação
if (mysqli_connect_errno($con))
 {
 echo "Falha na ligacao MySQL: " . mysqli_connect_error();
 }
 else {
echo "Ligacao OK!\n";}  


 $result = mysql_query("SHOW TABLES Like Clientes");
 $exists = mysql_num_rows($result) > 0 ? true : false;

 Echo $exists

 ?>
Pretendo saber se a tabela Ckientes existe.

Para tal, tento verificar o que retorna $exists mas dá erro:

Citação

Ligacao OK!
Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /srv/disk6/1365826/www/xpto12345.atwebpages.com/index.php on line 16

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /srv/disk6/1365826/www/xpto12345.atwebpages.com/index.php on line 16

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /srv/disk6/1365826/www/xpto12345.atwebpages.com/index.php on line 17

Espero que tenha fornecido dados suficientes para que me possam ajudar.

Obrigado.

Posted (edited)

A ligação ao mysql está a falhar, verifica os dados de ligação. Altera também as funções que te indiquei para o equivalente em mysqli_*.

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in /srv/disk6/1365826/www/xpto12345.atwebpages.com/index.php on line 17

Continuo com o mesmo problema alterando para mysqli_*.

Edited by tochano
Posted (edited)

A query em mysqli necessita de outro parâmetro o da ligação, e o nome da tabela necessita de estar entre ' ' ; coloca

  $result = mysqli_query($conexao, "SHOW TABLES Like 'xxxxxx'");
 $exists = mysqli_num_rows($result) > 0 ? true : false;

 echo $exists
Edited by N3lson

You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.

Posted

Boa tarde,

As vossas dicas tem vindo a ajudar imenso, Obrigado.

Contudo ainda continuo com um problema que não consigo resolver.

<?php

$tabela=Clientes;

if ($result = mysqli_query($con, "SHOW TABLES Like '$tabela'"))

{

echo "A tabela já existe <br />";

}

else

{

echo "A tabela não existe. <br />" .mysqli_error();

}

?>

Na Query se colocar '$tabela' entra na condição sempre como verdadeira, ou seja, independentemente da tabela existir ou não na base de dados, "diz" que a tabela existe. Se retirar as '' entra na condição como falso, ou seja, mesmo que crie a tabela, "diz" que não existe.

Onde estou a errar?

Posted

tens de fazer isto


 $result = mysqli_query($conexao, "SHOW TABLES Like '$tabela'");
 echo  ($exists = mysqli_num_rows($result) > 0)? 'existe' : 'não';

You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.

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
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.