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
Eli se heittää nyt "Yhdistäminen ei onnistunut" ?
Kokeile laittaa or die('Yhdistäminen ei onnistunut: ' . mysql_error());
niin saat ehkä hieman lisävalaistusta.
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....
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?
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.
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!
Oletko varma, että olet PHPn konfiguroinut toimimaan MySQL:n kanssa? Minulla tuli samaa erroria, kun MySQL ei toiminut PHPn kanssa.
Sinun pitäisi olla php:een asennuksessa valinnut että se toimii MySQL:än kanssa
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...)
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.
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.