nyörjarproblem med PHP & mySQL

Tråden skapades och har fått 9 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2005-01-16 12:07

Jag har försökt att dra igång en mySQL lokalt på mina Macar men får inte PHP att göra något.

Om jag kör HTML eller PHP kod så svarar Safari med det som förväntas, men när mySQL ska anropas så händer ingenting. Det verkar som att inte PHP koden bearbetas längre.

mySQL snurrar och jag kan komma åt eller skapa databaser med phpMyAdmin eller CocoaMySQL.

Jag har prövat allt jag kan hitta om detta men kört fast.

Tacksam för råd.

Janne

-----------------------
Janne Suhr
Color Consult AB
Stockholm
http://www.colorconsult.se
http://www.protouring.se

Hur kontaktar du MySQL via PHP?
Får du några felmeddeladen eller bara en tom sida?
Har du lagt till:

or die ($query."<br>".mysql_error());

i Query satsen bara för att se om du får några fel?

För det låter som om du gör något fel i själva koden och inte att det är fel på installationen.

  • Oregistrerad
  • 2005-01-16 12:17

Får du felmeddelande på mysql_query:n när du kör nått?

Hur ser uppkopplingen ut?

typ...

$DB = @mysql_connect("localhost","root","losen")
or die("felmeddelandet");
$DATABASEN = mysql_select_db("databasen");

EDIT: Så går det när man inte postar i tid

  • Medlem
  • Stockholm
  • 2005-01-16 13:15

Jag har kod som ser ut så här men jag har även provat andra exempel ur bland annat boken "PHP &mySQL for dummies"

<html>
<head>
<title>Anslut till MySQL</title>
</head>
<body>
<p>Testar anslutningen</p>

<?php
$dbcnx = mysql_connect('localhost', 'root', '');
if (!$dbcnx) {
die 'Unable to connect: ' . mysql_error());
}
echo 'You are connected';
?>
</body>
</html>

Det verkar som något låser sig, för HTML koden i början syns inte heller. Klipper jag ur php koden så syns html

Jag har testat som sagt flera olika kodexempel med samma blanka resultat alltså en tom sida. Försöker jag läsa "Source" ur webläsaren är även det blankt.

Tack

Janne

-----------------------
Janne Suhr
Color Consult AB
Stockholm
http://www.colorconsult.se
http://www.protouring.se

Ursprungligen av jannes:

<?php
$dbcnx = mysql_connect('localhost', 'root', '');
if (!$dbcnx) {
die 'Unable to connect: ' . mysql_error());
}
echo 'You are connected';
?>

Så här brukar jag göra uppläget. Dock så byter jag ut felmedelandet i or die() mot en snygg funktion, jag vill ju inte att användaren skall se eventuella fula felmeddelanden som jag vill se när jag programerar!

<?php
$mysql_host = "localhost";
$mysql_db = "my_database";
$mysql_username = "my_username";
$mysql_passwd = "my_passwd";

$mysql_connection = mysql_connect($mysql_host, $mysql_username, $mysql_password) or die("Could not connect to sql-server, mysql said: " . mysql_error());
$mysql_db = mysql_select_db($mysql_db, $mysql_connection) or die("Could not connect to database, mysql said: " . mysql_error());

$mysql_result = mysql_query("SELECT * FROM db WHERE 1") or die("Could not execute sql-query, mysql said: " . mysql_error());
if(mysql_num_rows($mysql_result)>0) {
  while($row = mysql_fetch_object($mysql_result)) {
    echo $row->id;
  }
} else {
  echo "No rows found!";
}
?>
  • Medlem
  • Stockholm
  • 2005-01-16 13:46

När jag testar din kod får jag detta meddelande:
Parse error: parse error in /Library/WebServer/Documents/test.php on line 11

  • Medlem
  • Stockholm
  • 2005-01-16 14:09
Ursprungligen av Cidden:

När jag testar din kod får jag detta meddelande:
Parse error: parse error in /Library/WebServer/Documents/test.php on line 11

Tack,

När jag tar bort hela DIE delen så får jag svar tillbaka.

Vad gör du för att få ut meddelandet du hittade.

Janne

-----------------------
Janne Suhr
Color Consult AB
Stockholm
http://www.colorconsult.se
http://www.protouring.se

Ursprungligen av jannes:

Vad gör du för att få ut meddelandet du hittade.

Det ställer du in i php.ini. För utveckling vill man ha ALLA felmeddelanden, inklusive NOTICES. I produktionsmiljö skall alla felmeddelanden vara avslagna, istället skall dom loggas till en loggfil.

php.ini kan ligga på olika ställen. På min slackware-baserade server ligger din i /etc/apache/php.ini. Jag misstänker att Mac OS X använder /etc/httpd/php.ini.

I sektionen "Error handling and logging" måste du göra två ändringar (och sedan starta om Apache):

error_reporting  =  E_ALL
display_errors = On
  • Oregistrerad
  • 2005-01-16 22:35

klippet du visade på din kod saknade en parantes "(" efter die (rad 11). Om du vill ha tillbaka den funktionen

  • Medlem
  • Stockholm
  • 2005-01-18 09:00

Tack för all hjälp, som sagt jag hade missat ett par tecken här och där och nu är jag igång.

Janne

1
Bevaka tråden