Autor Zpráva
Someone
Profil
Dobrý den, začínám s MySQL a provádím takové menší experimenty. Jenže jsem se zrovna zasekl u vytvoření tabulky. Zatím mám:
<html>
<form action="" method="POST">
<input type="submit" value="Připojit" name="pripojit">
</form>
</html>
<?php
  if (isset($_POST['pripojit']))
  {
  $spojeni = mysql_connect("127.0.0.1","root","") or die("Nepřipojeno");
  if ($spojeni = true)
  echo "Připojeno<br>";

  $vytvoreni_db = mysql_query('CREATE DATABASE Databáze') or die("Databáze nevytvořena");
  if ($vytvoreni_db = true)
  echo "Databáze vytvořena<br>";

  $vytvoreni_tb = mysql_query('CREATE TABLE Návštěvní kniha (text VARCHAR(20))') or die("Tabulka nevytvořena");
  if ($vytvoreni_tb = true)
  echo "Tabulka vytvořena<br>";
  }
?>

Připojení se provede, databáze se také vytvoří, ale tabulka ne. Nevíte čím to může být?
bukaJ
Profil
1) Je prasárna psát interpunkci do názvů tabulek a databází. Takže místo "Databáze" raději použij "databaze".
2) Měl bys vědět, že když má název dvě slova, tak se musí dát do uvozovek (apostrofů), aby počítač věděl, kde název začíná a končí. A další pravidlo je, že název nemůže obsahovat mezeru, takže řádek 17 by měl vypadat takto:
<?php
$vytvoreni_tb = mysql_query("CREATE TABLE 'navstevni_kniha' (text VARCHAR(20))") or die("Tabulka nevytvořena");
?>
(všimni si, že jsem musel apostofy kolem příkazu za měnit za uvozovky, aby se apostrofy v názvu tabulky staly součástí retězce)
bukaJ
Profil
A ještě mě napadá, při chybě můžeš zjistit její přícinu pomocí funkce mysql_error();

Zkus takto vyvolat chybu:
<?php
$vytvoreni_tb = mysql_query('CREATE TABLE Návštěvní kniha (text VARCHAR(20))') or die("Tabulka nevytvořena - chyba: " . mysql_error());
?>
Someone
Profil
Bohužel ani po změně se tabulka nevytvoří. (Jinak děkuji za ostatní rady)
edit: Po přidání chybové hlašky mi to je jasné. Není vybrána databáze.
bukaJ
Profil
No a tak ale zjisti, jakou chybu to píše. Co je důvodem, že se nevypíše?

To zjistíš právě pomocí mysql_error().

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0