nordanMedlem sedan juni 2000929 inlägg
Hej!
Är det någon som kan hjälpa mig att få en koppling till en MySql databas.
Det blir bara massa fel när jag håller på och jag har inte lyckas fått fram någon info från min databas.
iaf om jag då har en databas som heter test med en tabell som heter tbl_test
i denna tabell har jag tre cols
id fnamn och enamn
Går det enkelt att förklara för mig hur man gör en koppling så att den funkar!
Jag har konto på space2u.com om det är någon som har det och har lyckas med detta.
------------------
/nordan
HansenMedlem sedan aug. 2000383 inlägg
Hej,
Testa med denna kod, ändra databas, användarnamn och lösenord.
Finns uppladdat här: http://freebox.com/c.h/perl/dbi_connect.pl.txt
#!/usr/bin/perl -w
use strict;
use CGI;
use DBI;
my $username = '';
my $password = '';
my $database = '';
my $table = 'tbl_test';
my $q = new CGI;
my $dbh = DBI->connect( "DBI:mysql:$database", $username, $password )
or cgi_error( "Couldn't connect to database: " . DBI->errstr );
my $sth = $dbh->prepare("SELECT * FROM $table")
or cgi_error( "Couldn't prepare statement: " . $dbh->errstr );
$sth->execute()
or cgi_error( "Couldn't execute statement: " . $dbh->errstr );
print $q->header,
$q->start_html("DBI Test"),
$q->h3("Resultat:"),
$q->hr,
$q->start_table();
while ( my @data = $sth->fetchrow_array() ) {
print $q->Tr( $q->td( \@data ) );
}
print $q->end_table(),
$q->end_html;
$sth->finish();
$dbh->disconnect;
sub cgi_error {
my ($error) = @_;
$dbh->disconnect if ($dbh);
print
$q->header,
$q->start_html("Error"),
$q->h3("Error"),
$q->hr,
$q->p, $error,
$q->end_html;
exit;
}
* Ändrade koden något *
------------------
Hansen
c.h@ngmedia.com
[Redigerat av Hansen den 19 jul 2001]
HansenMedlem sedan aug. 2000383 inlägg
Om några fel uppstår så borde vi få några felmeddelande att jobba med, berätta gärna hur det går!
------------------
Hansen
c.h@ngmedia.com
nordanMedlem sedan juni 2000929 inlägg
Tack Hansen!
Tyvärr så funka det inte med din kod heller :\
Här är felmedelnade som jag fick
Couldn't connect to database: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)
Vet någon snäll typ som Hansen eller någon annan hur man skall gått tillväga?
------------------
/nordan
Peter_BMedlem sedan apr. 2000595 inlägg
har du startat mysqld?
är DBI och allt det korrekt installerat?
------------------
PeterSign v 2.3.36
nordanMedlem sedan juni 2000929 inlägg
Det är inte jag som har sql servern utan space2u.det går att koppla upp sig mot den med hjälp av admphp så man kan göra tabeller m.m. och jag hoppas att DBI modulen är rätt installerad
Ingen som vet vad felmedelade betyder? eller vad man kan göra för att få det att funka?
Jag har använt mig av koden som Hansen har lagt ut
------------------
/nordan
HansenMedlem sedan aug. 2000383 inlägg
Hej,
Ok, php fungerar. Testa detta php script och se om det fungerar.
http://freebox.com/c.h/perl/db_connect.php.txt
<?php
$username = '';
$password = '';
$database = '';
$table = 'tbl_test';
$host = 'localhost';
?>
<HEAD>
<TITLE>DB Connect test</TITLE>
</HEAD>
<BODY>
<TABLE BORDER=1>
<?php
$connection = mysql_connect($host, $username, $password)
or die("Couldn't make connection.");
$db = mysql_select_db($database, $connection)
or die("Couldn't select database.");
$sql = "SELECT *
FROM $table";
$sql_result = mysql_query($sql,$connection)
or die("Couldn't execute query.");
while ($row = mysql_fetch_array($sql_result)) {
echo "<TR>\n";
for ($i = 0; $i <= count($row); $i++) {
echo "<TD>$row[$i]</TD>\n";
}
echo "</TR>\n";
}
mysql_free_result($sql_result);
mysql_close($connection);
?>
</TABLE>
</BODY>
</HTML>
------------------
Hansen
c.h@ngmedia.com
[Redigerat av Hansen den 20 jul 2001]
nordanMedlem sedan juni 2000929 inlägg
Hallå! Det har fixat sig med kopplingen jag hade missat att skriva in host :r
Tackar så mycket för hjälpen iaf :D
------------------
/nordan