我刚开始在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")
答案 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系统会有不同的答案。