/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
PEARs SQL-klasser
Fra : Jonas Koch Bentzen


Dato : 19-04-01 08:40

Følgende kode, der er en meget let modificeret udgave af
<http://conf.php.net/pres/slides/pear/tut2.php?p=slides%2Fpear&id=pear&t=++++++++DB+connect%2Fbasics%0A&bg=background.png&slide_num=13&width=1144>,
kan jeg ikke få til at virke - der bliver simpelthen ikke skrevet noget
ud. Problemet er ikke, at PEAR ikke er installeret eller er i
include-stien, for hvis jeg skriver et forkert brugernavn eller,
adgangskode, tabelnavn eller lignende, bliver der skrevet
fejlmeddelser. Når jeg så har rettet alt, sådan at tabel- og
kolonnenavnene passer, ja, så bliver der ikke skrevet noget ud. Hvad er
der galt?

<?php
require_once "DB.php";

$dbh =
DB::connect("mysql://brugernavn:adgangskode@localhost/database");
if (DB::isError($dbh)) {
print "Database connection failed: ";
print $dbh->getMessage();
exit;
}
$dbh->setErrorHandling(PEAR_ERROR_DIE);
$sth = $dbh->query("SELECT dato, titel FROM nyheder");
while ($res = $sth->fetchInto($row)) {
echo "$row[0] : $row[1]<BR>\n";
}
// or this:
$sth = $dbh->query("SELECT dato, titel FROM nyheder");
while ($res = $sth->fetchInto($row, DB_FETCHMODE_ASSOC)) {
echo "$row[dato] : $row[titel]<BR>\n";
}
?>

--
Venlig hilsen
Jonas Koch Bentzen

 
 
Thomas L. Kjeldsen (20-04-2001)
Kommentar
Fra : Thomas L. Kjeldsen


Dato : 20-04-01 01:06

Jonas Koch Bentzen wrote:
> Følgende kode, der er en meget let modificeret udgave af
> <http://conf.php.net/pres/slides/pear/tut2.php?p=slides%2Fpear&id=pear&t=++++++++DB+connect%2Fbasics%0A&bg=background.png&slide_num=13&width=1144>,
> kan jeg ikke få til at virke - der bliver simpelthen ikke skrevet noget
> ud. Problemet er ikke, at PEAR ikke er installeret eller er i
> include-stien, for hvis jeg skriver et forkert brugernavn eller,
> adgangskode, tabelnavn eller lignende, bliver der skrevet
> fejlmeddelser. Når jeg så har rettet alt, sådan at tabel- og
> kolonnenavnene passer, ja, så bliver der ikke skrevet noget ud. Hvad er
> der galt?

Jeg har ikke set på din kode, men det kan muligvis være fordi at netop
PEARs DBI ikke er særligt godt endnu. Svjv (det er dog måske en måneds tid
siden) er der stadig diskussioner om hvordan designet skal være af PEARs
DBI.


/tlk

Emil Rasmussen (20-04-2001)
Kommentar
Fra : Emil Rasmussen


Dato : 20-04-01 16:30

Hej

>Hvad er der galt?

> $sth = $dbh->query("SELECT dato, titel FROM nyheder");
> while ($res = $sth->fetchInto($row)) {
> echo "$row[0] : $row[1]<BR>\n";
> }

Når du bruger fetchInto() skal du IKKe sætte den lig med en variabel.
Enten:

while ($dth->fetchInto($row)) {
echo "$row[0] : $row[1]<BR>\n";
}

eller

while ($row = $dth->fetchRow()) {
echo "$row[0] : $row[1]<BR>\n";
}

Der er mere hjælp til selv hjælp her:
http://vulcanonet.com/soft/?pack=pear_tut

Mvh Emil

ps. så har jeg ikke selv haft gode erfaringer med fetchInto().
Og den taste fejl du har i din post, går vel ikke igen i dit script?

--
Emil Rasmussen
http://www.noget.net



Jonas Koch Bentzen (20-04-2001)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 20-04-01 17:11

Emil Rasmussen skrev:

> Der er mere hjælp til selv hjælp her:
> http://vulcanonet.com/soft/?pack=pear_tut

Ahh... Glimrende - tak.

> Og den taste fejl du har i din post, går vel ikke igen i dit script?

Tastefejl? Hvor?
Det meste er kopieret direkte fra scriptet på den adresse, jeg nævnte.

--
Venlig hilsen
Jonas Koch Bentzen

Emil Rasmussen (20-04-2001)
Kommentar
Fra : Emil Rasmussen


Dato : 20-04-01 20:06

Hej

> Ahh... Glimrende - tak.

Det var så lidt

> > Og den taste fejl du har i din post, går vel ikke igen i dit script?
>
> Tastefejl? Hvor?
> Det meste er kopieret direkte fra scriptet på den adresse, jeg nævnte.

$sth = $dbh->query("SELECT dato, titel FROM nyheder");
^^^^
while ($res = $sth->fetchInto($row)) {
^^^^^
echo "$row[0] : $row[1]<BR>\n";
}

Nu satser jeg på din klient ramme de rigitge ^^'er, men hvis ikke, så er det
$dbh og $sth der ikke helt matcher.

Mvh Emil

--
Emil Rasmussen
http://www.noget.net



Emil Rasmussen (21-04-2001)
Kommentar
Fra : Emil Rasmussen


Dato : 21-04-01 08:50

Hej igen

> ps. så har jeg ikke selv haft gode erfaringer med fetchInto().

Det er åbenbart nødvendigt at gøre sådan her:

while (DB_OK === $res->fetchInto($row)) {
....
}

Mvh Emil

--
Emil Rasmussen
http://www.noget.net



Søg
Reklame
Statistik
Spørgsmål : 177556
Tips : 31968
Nyheder : 719565
Indlæg : 6408865
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste