Autor Zpráva
Pavlínka
Profil
$mysql_server="46.xx.xx.xx";
$mysql_user="data";
$mysql_password="nejakeheslo";
$spojeni=mysql_connect("$mysql_server","$mysql_user","$mysql_password") or die(myql_error($db));
$youip=$_SERVER["REMOTE_ADDR"];
$time=time();
mysql_query("INSERT INTO `$mysql_user`.`sleduj` (`id`, `user`, `program`, `time`, `ip`) VALUES (NULL, '$iduser', '$id', '$time', '$youip');", $spojeni);

řádek s mysql_query však hodí chybu:
[Sun Aug 06 15:21:47.123063 2017] [:error] [pid 27624] [client 37.48.xx.xx:47968] PHP Warning: mysql_query() expects parameter 2 to be resource, boolean given in ...
nevidím tam chybu a na netu nic moc kloudného není... neví někdo kde je problém?
kují
T-fon
Profil
Ten řádek je hodně záhadnej a těch chyb je tam spousta.
Nicméně pro tebe nemá smysl se tím zabývat, s mysql_query už v dnešní době nic nevytvoříš, udělej to celé pomocí knihovny PDO, nebo mysqli.
Pavlínka
Profil
ono to do mysql normálně zapisuje ale vyhazuje to tuto chybu ... jen nechápu proč :D jak to tedy zapsat líp?
na mysql nevidím nic špatného
TomášK
Profil
Vždyť to tam přesně píše, proč.

mysql_query() expects parameter 2 to be resource, boolean given

To znamená, že parametr 2, tedy $spojeni je boolean. To je pravděpodobně špatně. Odkud se to vzalo?

$spojeni=mysql_connect("$mysql_server","$mysql_user","$mysql_password") or die(myql_error($db));

Na pravé straně je podmínka ... or ..., tedy její výsledek je boolean.

mysql_* není podporované v současné verzi PHP.
Pavlínka
Profil
nepoužívám nenovější php :)
jednoznačně jsem chybu v spojení našla :)
pcmanik
Profil
Pavlínka:
Čize používaš zastaralú verziu PHP na ktorú už niesu vydávaná ani bezpečnostné záplaty? To smrtí prúserom.
Rodina funkcií z mysql_* bola označená ako deprecated už vo verzii PHP 5.5. A posledná aktuálne podporovaná PHP verzia je 5.6.*.

A zlé je na tom to, že mysql_* nieje objektové, nepodporuje viaceré funkcie ktoré PDO a mysqli zvláda, atď. Viac tu.
Keeehi
Profil
TomášK:
Na pravé straně je podmínka ... or ..., tedy její výsledek je boolean.
To tak úplně není pravda. Nejdříve se vyhodnotí to přiřazení a pak až následně se přistupuje k vyhodnocení operátoru or. Aby se nejdříve vyhodnotilo or, musel by jsi to uzávorkovat.

Pavlínka:
Myslím, že zrovna tobě může být nějaká objektovost úplně jedno. Je však pravda, že mysql_* funkce by se dnes už neměly používat. Nikdy nevíš, kdy se tvůj poskytovatel webhostingu rozhodne upgradovat verzi PHP a tobě přestanou fungovat stránky. Nejlepší pro tebe bude použít funkce mysqli_*. Jsou velmi podobné funkcím rodiny mysql_* a tak přechod by pro tebe neměl být velký problém. Navíc se dají používat nejen objektově, ale i postaru procedurálně.
TomášK.
Profil *
Keeehi:
Dík za opravu. Chtěl jsem tam vidět boolean, tak jsem ho tam našel, i když to je samozřejmě špatně.

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: