Autor Zpráva
PHP_Nemaster
Profil
Dobrý den,
dlouho už jsem nic nedělal v PHP, ale ted jsem se k tomu vrátil a z nějakého důvodu mi nefunguje jedna věc.

<?php
	error_reporting( E_ALL );

	$connect = mysql_connect("localhost", "root", "");
	$select_db = mysql_select_db("test");

		$insert = "INSERT INTO test ( one, two) VALUES ( 'one', 'two' )";
		$result = mysql_query( $insert );

?>


Mám WAMP server, když tenhle kod spustím, nevyhodí mi to žádnou chybu. Nemůžu přijít na to, v čem je problém, ale do databáze se nic neuloží. Je problém v INSERTu, nebo v připojení? Vážně nevím...

Předem děkuji za odpověd, možná je to úplně jednoduché.
peta
Profil
Ja tam pouzivam tech radku vic pro error, zkus to porovnat. Potom uz jedine zmenit nastaveni v php.ini nebo http.conf, ci kde se to nastavuje (viz uplne dole).
Jeste me tak napada otazka, je v databazi tabulka test? jeja je jeji struktura a pocet radku pred a po? Zkus pod to dat
SELECT * FROM test

a zobrazit while cyklem. Zkus to spravne oapostrofovat?
INSERT INTO `test` ( one, two) VALUES ( 'one', 'two' )

Zkus tam dat test.test. Treba je zmateny z toho, ze tabulku mas pojmenovanou stejne jako databazi. Ale to by nemel, protoze mas pred tim select_db.
INSERT INTO `test`.`test` ( one, two) VALUES ( 'one', 'two' )

Jakou verzi pouzivas programu?
Zkousel jsi ten prikaz v phpmyadminu?

<?php
@ini_set('error_reporting', E_ALL|E_STRICT);
@ini_set("display_errors", "1");
error_reporting(E_ALL|E_STRICT);

$SQL    = array();
$SQL['host']   = "localhost";	//server (host)
$SQL['user']   = "root";	//MySQL user
$SQL['psw']    = "";		//MySQL password
$SQL['dbname'] = "minichat";	//MySQL DB name

function showError($str) {echo $str;}
$SQLserver = mysql_connect($SQL['host'],$SQL['user'],$SQL['psw']) or showError('Err: connect DB server!' . mysql_error());
$SQLdb     = mysql_select_db($SQL['dbname'],$SQLserver)           or showError('Err: connect DB!' . mysql_error());
showError((bool)$SQLserver);
showError((bool)$SQLdb);
?>
o_O
Profil
PHP_Nemaster:
Nechte si vypsat mysql_error();.

peta:
Treba je zmateny z toho, ze tabulku mas pojmenovanou stejne jako databazi.
Blbost.

Jakou verzi pouzivas programu?
Jakého programu?
Spectator
Profil
echo mysql_error();
PHP_Nemaster
Profil
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table ( one, two) VALUES ( 'one', 'two' )' at line 1
o_O
Profil
PHP_Nemaster:
Tudíž kód, který nám tu ukazujete, není ten, který je chybný.

Ukažte nám originál, jinak Vám asi nepomůžeme.

Pokud vkládáte data do tabulky "table", je chyba způsobena tím, že se jedná o chráněné slovo.
Alphard
Profil
[#2] peta
K čemu to je? Funkce showError() je prakticky k ničemu. Když už by měla v testovacím módu vypisovat chyby a (po přepsání) na ostrém serveru ne, udělal bych raději vlastní mysql_query(), kde by se mohl automaticky vypsat sestavený dotaz i případná chyba, tohle je zbytečně pracné.
Kromě toho se mi zdá vzhledem k předchozímu kódu zbytečné volat showError((bool)$SQLserver);, když se nevypíše chyba, je to true.
PHP_Nemaster
Profil
o_O: Děkuji. Už chápu, ta tabulka se jmenovala "table", to "test" je překlep. Ted už to funguje.

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