2012-03-27 8 views
1

Ich fing gerade an, an informix zu arbeiten. (Ich habe mysql mein ganzes Leben benutzt) wie ich mysql_fetch_assoc für informix ersetze. Lets sagen, ich will bei einem time.normally in mysql ein Element anzuzeigen i eine while-Schleife wie folgt ausführen würde:mysql_fetch_assoc Entsprechung für informix

while($row=mysql_fetch_assoc($sql)) 
{ 
    echo $row['name']; 
    echo $row['number']; 
} 

Wie mache ich das für Informix?

$sql="select * employee"; 
$result=$dbh->dbRequest("$sql") 
+0

was bedeutet '$ result' enthalten? Hast du eine 'var_dump()' gemacht? Ich würde sagen, es enthält ein Array –

+0

Welche Bibliothek verwenden Sie? Ich sehe keine dbRequest hier: http://php.net/manual/en/book.ifx.php – runrig

Antwort

1

Ich würde vorschlagen, PDO mit dem Informix-Treiber zu verwenden. Das Handbuch enthält zahlreiche Beispiele zum Ausführen und Zurückgeben von Daten aus Abfragen mit PDO.

PDO Informix-Treiber - http://php.net/manual/en/ref.pdo-informix.php PDO vorbereiten - http://www.php.net/manual/en/pdo.prepare.php

$db = new PDO('informix:DSN=db', '', ''); 
$query = $db->prepare('SELECT * FROM employee'); 
$query->execute(); 

while ($employee = $query->fetchObject()) { 
    echo $employee->name; 
    echo $employee->number; 
} 
0

Dies ist eine grundlegende Frage Perl DBI, obwohl es keine dbRequest Methode in der DBI, zumindest nicht AFAIK ist.

Sie sollten so etwas wie diese verwenden, obwohl ich nehme an, Sie haben $dbh->{RaiseError} = 1 oder anderweitig Fehler an den Code überprüft gehen hinzuzufügen:

my $sql = "select * from employee"; 
my $sth = $dbh->prepare($sql); 
$sth->execute; 
my $hashref; 

while ($hash_ref = $sth->fetchrow_hashref()) 
{ 
    print "$hash_ref->{name}\n"; 
    print "$hash_ref->{number}\n"; 
} 

Dies ist DBMS-neutral; Wenn Sie Perl DBI mit MySQL, Informix, Oracle, DB2, ... verwenden, schreiben Sie den Code so.

Hinweis: Ich habe die Tags bearbeitet, um Perl und DBI und MySQL hinzuzufügen (und die SQL- und Syntax-Tags gelöscht). Wenn ich Ihre Frage falsch interpretiert habe und Sie PHP anstelle von Perl verwenden, sollten Sie den Code an erster Stelle mit PHP versehen haben (und ihn jetzt neu schreiben). Hier ist kein SQL-Problem erwähnenswert; Es geht darum, wie man SQL in der (formal nicht identifizierten) Hostsprache verwendet.

Es gibt eine andere Antwort, wenn die Frage PHP ist, mit dem PDO-System.