Insert do MySQL databáze

5 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Zdravím vás, snažím se vkládat záznamy do MySQL databáze na serveru, ale nedaří se mi - vytvořil jsem si pomocný php soubor, abych otestoval spojení s dtbází a zjistil, kde je případně chyba. Vypadá to, že se v pořádku naloguju, ale už se nepodaří vložit záznamy - prohlížeč - můžete mi poradit, kde dělám chybu? Předem děkuji. <?php $servername = "mysql.wz.cz:3306"; $username = "tlatep"; $password = "******"; $dbname = "tlatep"; $Teplota = "10"; $Tlak = "20"; $Vlhkost = "30"; $conn = mysql_connect($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } else { echo "Propojeno"; } $sql = 'INSERT INTO tlatep.TLATEP (Datum, Teplota, Tlak, Vlhkost) VALUES (NOW(), . $Teplota, . $Tlak, . $Vlhkost)'; if ($conn->query($sql) === TRUE) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ?>
  2. Ještě jsem zapomněl uvést chybu, kterou vypíše prohlížeč: " Propojeno Fatal error: Call to a member function on a non-object in /3w/borec.cz/t/tlatep/connect.php on line 19 " Řádek 19 je tento "if ($conn->query($sql) === TRUE) {"
  3. Myslím si, že chybová zprávička "Call to a member function on a non-object" je zřejmá, ale pro úplnost: používáš volání nad objektem (->) když proměnná neobsahuje objekt. Funkce mysql_connect() objekt nevrací (předpokádám, že v původním příkladu který jsi někde sebral bylo použito mysqli_connect(), které ale poskytuje jiné rozhraní). http://php.net/mysql_connect
  4. Aha, díky - jak jsi poznal, jsem laik a snažím se toto trošičku naučit. Přepsal jsem kód (viz pod textem) podle teorie za odkazem, který jsi poslal a zobrazí se hlášení "Connected successfully!". Jsem v databázi a dokonce se vytvoří i záznam, akorát se do sloupců vyplní správně pouze Datum. Ostatní hodnoty (z proměnných) se v databázi nezapíší - je tam všude číslo 0. Co s tím? <?php $servername = "mysql.wz.cz:3306"; $username = "tlatep"; $password = "******"; $dbname = "tlatep"; $Teplota = 10; $Tlak = 20; $Vlhkost = 30; $conn = mysql_connect($servername, $username, $password); if(!$conn) { die('Could not connect: ' . mysql_error()); } mysql_select_db('tlatep'); mysql_query("INSERT INTO TLATEP (Datum, Teplota, Tlak, Vlhkost) values (NOW(), .$Teplota, .$Tlak, .$Vlhkost)"); echo 'Connected successfully!'; mysql_close($conn); ?>
  5. ÁÁÁÁ.... ještě jednou děkuji, našel jsem pravděpodobně chybu - nevím, kde jsem vzal tečky před proměnnými, po jejich odstranění už to funguje... :-)

← Zpět na všechna témata