mysql_fetch_assoc等效于informix

时间:2012-03-27 14:38:40

标签: php mysql informix

我刚开始在informix上工作。(我一生都在使用mysql) 我如何用mysql_fetch_assoc替换informix。 让我说我想一次显示一个项目。通常在mysql中我会像这样运行一个while循环:

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

我如何为informix做到这一点?

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

2 个答案:

答案 0 :(得分:1)

我建议将PDO与informix驱动程序一起使用。该手册有大量使用PDO从查询中执行和返回数据的示例。

PDO Informix驱动程序 - http://php.net/manual/en/ref.pdo-informix.php PDO准备 - 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;
}

答案 1 :(得分:0)

这是一个基本的Perl DBI问题,尽管DBI中没有dbRequest方法,至少不是AFAIK。

你应该使用这样的东西,虽然我假设你有$dbh->{RaiseError} = 1或者否则会在代码中添加错误检查:

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";
}

这是DBMS中立的;如果您将Perl DBI与MySQL,Informix,Oracle,DB2一起使用......这就是您编写代码的方式。

注意:我编辑了标签以添加Perl和DBI以及MySQL(并删除了SQL和语法标签)。如果我误解了你的问题并且你使用的是PHP而不是Perl,那么你应该首先使用PHP标记代码(现在应该将其重新标记)。这里没有值得一提的SQL问题;它是关于如何在(正式未识别的)宿主语言中使用SQL。

如果问题是PHP,则使用PDO系统会有不同的答案。