Autor | Zpráva | ||
---|---|---|---|
PHP_Nemaster Profil |
#1 · Zasláno: 8. 8. 2011, 12:33:49
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 |
#2 · Zasláno: 8. 8. 2011, 12:56:29
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 |
#3 · Zasláno: 8. 8. 2011, 12:57:35 · Upravil/a: o_O
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 |
#4 · Zasláno: 8. 8. 2011, 12:58:17
echo mysql_error(); |
||
PHP_Nemaster Profil |
#5 · Zasláno: 8. 8. 2011, 13:07:15
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 |
#6 · Zasláno: 8. 8. 2011, 13:09:36 · Upravil/a: o_O
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 |
#7 · Zasláno: 8. 8. 2011, 13:11:43
[#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 |
#8 · Zasláno: 8. 8. 2011, 13:21:04
o_O: Děkuji. Už chápu, ta tabulka se jmenovala "table", to "test" je překlep. Ted už to funguje.
|
||
Časová prodleva: 14 let
|
0