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();
?>
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) {"
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
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);
?>
ÁÁÁÁ....
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... :-)