Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: mysql_connect - probleema

Sivun loppuun

makumaku [02.11.2004 17:47:47]

#

Ajattelin alkaa kokeilemaan pientä projektiä PHP:llä ja MYSQL-kantaa käyttäen. Homma tökkäsi heti alkuunsa. XP-koneelle on asennettu Apache 2.0.51, PHP 5.0.2 ja MySQL 4.1.17. PHP ja Apache on toimineet ihan ok jo jonkin aikaa, mutta nyt installoin tuon MySQL:n myös koneeseen. Tein sitten yksinkertaisen databasen ja sinne tablen komentoriviltä ja muutenkin kaikki hommat toimii mysql-komentoriviltä hyvin.
Seuraavaksi kokeilin ottaa yhteyttä PHP:lla tietokantaan, ja tein seuraavan testisoftan test.php:

<HTML><HEAD></HEAD><BODY>
Testiyhteys:
<?php
echo ("<P>Alku</P>");
$dbcnx = @mysql_connect("localhost", "root", "salasana");
if (!$dbcnx)
    {
    echo( "<P>Unable to connect</P>");
    }
echo ("<P>Loppu</P>");
?>
</BODY></HTML>

Browseri tuntuu jotenkin aina hyytyvän tuohon mysql_connect riville ja sen jälkeen mitään ei tulostu sivulle. Jos pistän tuon mysql_connect rivin kommenttiin niin sitten myös sen jälkeiset jutut tulostuvat ok. Mikä voisi mättää ? Ini-Asetukset vai joku muu? Kylläkai sivulle pitäisi jotakin tuon tulostua mysql_connect rivin jälkeenkin vaikka yhteyttä ei saataisi tai salasanat olisi väärin jne...
Kommentit otetaan kiitoksella vastaan. Luultavasti tässä on jokin aloittelijan helppo kämmi, mutta mikä? Vai onko noilla em. versioilla todettu ongelmia toimia toistensa kanssa?

-maku

ps. Muistaakseni asensin joskus mysql 4.0.x serverin ja silloin Windowsin palkkiin ilmestyi se liikennevalo ikoni, mutta nyt tämän mysql 4.1 serverin asennuksen ei sellaista tullut. Pitäisikö tulla jokin mysql Admin ikoni?

petterik [02.11.2004 18:07:47]

#

Olen käyttänyt itse seuraavantapaisia juttuja:

$db = mysql_connect("sejase.host.fi", "user", "salasana");
mysql_select_db("kanta",$db);
$result = mysql_query("SELECT kentta1 FROM Taulu",$db);
if ($myrow = mysql_fetch_array($result)) {
	do {
		$data=$myrow["kentta1"]);
		echo "$data";
	} while ($myrow = mysql_fetch_array($result));
} 	else {
	echo "ei tietoja taulussa";
}

Pistää silmään ero että sulla on @-merkki tuon mysql_connect käskyn edessä. Mistä se tulee? Itse en yleensä testaakaan tuota yhteyttä kantaan, vaan kysyn suoran tietoja taulusta ja testaan tuliko mitään.

Triskal [02.11.2004 18:27:47]

#

Minulla oli tuo ongelma, tai ainakin vaikuttaa siltä. Odotas hetki...

EDIT: Tästä voisi olla apua:

https://www.ohjelmointiputka.net/keskustelu/6596-php-n-myslinhallintakomennot-eivät-ota-toimiakseen

Blaze [02.11.2004 19:22:50]

#

petterik kirjoitti:

Pistää silmään ero että sulla on @-merkki tuon mysql_connect käskyn edessä. Mistä se tulee?

@ funktion edessä estää sitä tulostamasta virheilmoituksia, jotka tuotantosivuilla eivät näytä oikein hyvältä. Debugatessa on enemmän, kuin hyvä idea ottaa ne pois.

Niko [02.11.2004 19:33:51]

#

Onhan sulla PHPssä käännettynä uusin mysqlclient?
Itselläni oli toi Mysqllib 4.0.70(?) ja päivitin MySQLlän uusimpaan eli 4.1.17 jouduin kääntämään myös phpn uudelleen että sain päivitettyä phpn mysqllibin uusimpaan

tämä johtuu salasanan hashauksen muutoksesta

lue lisää: http://dev.mysql.com/doc/mysql/en/Password_hashing.html

makumaku [02.11.2004 20:48:57]

#

Kokeilin tällä pätkällä että löytääkö mysql funktiota:
<?php
if(function_exists("mysql_connect")) echo "MySQL-funktiot käytössä";
else echo "MySQL-funktiot ei käytössä";
?>
Sanoo että "..ei käytössä" eli ilmeisesti PHP5:sta ei ole konffattu käyttämään näitä mysql-funktioita.

PHP:n manuaalissa sanotaan:
In PHP 5, MySQL is no longer enabled by default, nor is the MySQL library bundled with PHP. Read this FAQ for details on why.
Note: Windows users will need to enable php_mysql.dll inside of php.ini and either copy libmysql.dll into the Windows system directory, or make it available to the PATH.

Eli otin "extension=php_mysql.dll"-rivin pois kommenteista, ja heti alkoi funktiot löytyä. Ihmeellista että PHP5:n mukana tullut php.ini juuri väittää että tätä ei tarvitse ottaa pois kommenteista.

No nyt sitten herjaa että "Client does not support authentication protocol requested by server; consider upgrading MySQL client" eli ollaan varmaankin Nikon mainitsemassa ongelmassa. Miten käytännössä päivitän uuden mysqlclient:n php:ssä?? Käyttis siis win XP.

No kiersin ongelman muuttamalla salasanat mysql serverin puolella vanhaan formaattiin.

ajv [02.11.2004 22:21:17]

#

makumaku kirjoitti:

Kokeilin tällä pätkällä että löytääkö mysql funktiota:
<?php
if(function_exists("mysql_connect")) echo "MySQL-funktiot käytössä";
else echo "MySQL-funktiot ei käytössä";
?>

Hmmm... Jotenkin tutunnäköinen pätkä :D

Triskal [02.11.2004 23:33:14]

#

Tuo on se nimenomainen pätkä jonka kirjoitit minulle hjälpiksi kun minulla oli tuo sama onkelma.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta