Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySql yhteys

Sivun loppuun

hannlapp [07.07.2009 11:32:20]

#

Virittelen ensimmäistä kertaa MySql yhteyttä mutta jokin mättää:)

Koneellani on MySql ja pääsen sitä kyllä hallinnoimaan root/password tunnuksella, mutta yhteyttä ei vaan saa...

<?php
//muodostetaan yhteys tietokantapalvelimeen
$yhteys = mysql_connect("localhost","root","password") or die("Yhdistäminen ei onnistunut!");

//valitaan tietokanta "testi"
mysql_select_db("mysql", $yhteys) or die("Tietokantaa ei löytynyt!");

//tähän tulevat tietokantakyselyt!

//suljetaan yhteys
mysql_close($yhteys);
?>

Mod. lisäsi kooditagit

Grez [07.07.2009 11:36:45]

#

Eli se heittää nyt "Yhdistäminen ei onnistunut" ?

Kokeile laittaa or die('Yhdistäminen ei onnistunut: ' . mysql_error());

niin saat ehkä hieman lisävalaistusta.

hannlapp [07.07.2009 13:32:41]

#

Niin se homma vaan etenee eli yhteys mysql-tietokantaan on olemassa (luulisin ainakin kun ei herjaile mitään!!)

Seuraava ongelma on se että tällainen yksinkertainen komento on annettu mutta tulee vaan parse erroria eli ilmeisti jotain siinä on pielessä....

$syota = "INSERT INTO kirjat (hinta, nimi) VALUES ('150', 'Tuntematon sotilas')";

Olen yrittänyt '-merkkien tilalle "-merkkiä muttei vaikuttanut....

MIB [07.07.2009 13:40:02]

#

Ongelma tuskin johtunee tuosta rivistä. Kuitenkin siinä on jotakin virheitä.
Muuten on tuo ihan oikein, mutta numeron ympärille ei kuulu laittaa heittomerkkejä:

$syota = "INSERT INTO kirjat(hinta, nimi) VALUES('150', 'Tuntematon sotilas')";

Sitten, jos haluat tallentaa tuon kantaa, niin se kuuluu tehdä näin:

<?php
$syota = mysql_query("INSERT INTO kirjat(hinta, nimi) VALUES(150, 'Tuntematon sotilas')") or die(mysql_error());
?>

Ps. Laitatko koko koodisi?

TeNDoLLA [07.07.2009 14:52:37]

#

Jos sulla tulee parse erroria, niin vika on sun php koodissas. MySQL kun muistaakseni heittää syntax erroria jos joku on kyselyissä pielessä. Eikä tuossa kyselyssä itsessään ole kyllä mitään vikaa. Esim. puuttuva puolipiste, avonainen sulku tms.

hannlapp [08.07.2009 08:21:55]

#

No niin, nyt se ei anna enää virheilmoitusta selaimessa mutta ei anna mitään tulostakaan vaikka koodin mukaaan varmaan pitäisi? Tässä koodi:

<?php
//muodostetaan yhteys tietokantapalvelimeen
$yhteys = mysql_connect("localhost","root","password") or die('Yhdistäminen ei onnistunut: ' . mysql_error());
//valitaan tietokanta "mysql"
mysql_select_db("mysql", $yhteys) or die("Tietokantaa ei löytynyt!");
//haetaan kaikki tietueet
$syota = "INSERT INTO kirjat ('hinta', 'nimi') VALUES ('150', 'Tuntematon sotilas')";
$kysely = "SELECT * FROM kirjat";
//suoritetaan kysely
$haku = mysql_query($syota, $yhteys);
$haku = mysql_query($kysely, $yhteys);
//suljetaan yhteys
mysql_close($yhteys);
?>

Sitten kun kokeilen tätä php-editorilla niin siellä kuitenkin tulee ilmoitus:

File 'c:\mysql\share\charsets\?.conf' not found (Errcode: 2)
�Character set '#33' is not a compiled character set and is not specified in the 'c:\mysql\share\charsets\Index' file
<br />
<b>Warning</b>: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in <b>C:\Program Files\Abyss Web Server\htdocs\sql_Temp.php</b> on line <b>3</b><br />
Yhdistäminen ei onnistunut: Client does not support authentication protocol requested by server; consider upgrading MySQL client

Uusimmat versiot mielestäni kaikista otin mutta jotain vissiin haluaisi päivitettävän?

Mod. lisäsi taas kooditagit!

MIB [08.07.2009 10:50:08]

#

Oletko varma, että olet PHPn konfiguroinut toimimaan MySQL:n kanssa? Minulla tuli samaa erroria, kun MySQL ei toiminut PHPn kanssa.

alker [08.07.2009 11:00:36]

#

Sinun pitäisi olla php:een asennuksessa valinnut että se toimii MySQL:än kanssa

MIB [08.07.2009 11:18:12]

#

alker kirjoitti:

Sinun pitäisi olla php:een asennuksessa valinnut että se toimii MySQL:än kanssa

Minulla ei ainakaan tämä uusin PHP kysynyt tälläistä. (Vai olikohan PHP 5.2.8...)

hannlapp [08.07.2009 12:57:16]

#

asensin php:n uudelleen muttei se siinä kysellyt yhtään mitään...

Ainakin php yhteys mysql:ään toimii siten että ottaa siihen yhteyden ja löytää tietokannankin.

Metabolix [08.07.2009 13:20:43]

#

Jos tuossa on koko koodisi, niin ei se mitään tulosta. Kannattaa lukea jotain aiheesta kertovaa opasta, niin selviää, kuinka mysql_query-funktiolla suoritettujen kyselyiden tuloksia käsitellään.

Voit myös käyttää hakuihin mysql-alkuisten funktioiden sijaan nykyaikaisempaa ja turvallisempaa PDO-rajapintaa, josta kerrotaan Antti Laaksosen tuoreessa oppaassa. Samasta lähteestä selviää myös tulosten käsittely perustasolla.


Sivun alkuun

Vastaus

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

Tietoa sivustosta