这是我用来从 InterBase 数据库中获取一些数据的简单代码:
<?php
$host = 'localhost:C:/ME/DB/test.GDB';
$username='SYSDBA';
$password='*******';
if (!($dbh=ibase_connect($host, $username, $password, 'ISO8859_1', 0, 1)))
die('Could not connect: ' . ibase_errmsg());
$stmt = 'SELECT * FROM DB where CODE >= 4400';
$sth = ibase_query($dbh, $stmt);
$letters = array();
while ($row = ibase_fetch_assoc($sth)) {
echo $row['CODE'] . ' ';
}
ibase_free_result($sth);
ibase_close($dbh);
?>
该代码在 Windows 7 上运行良好,但在 XP 上(这是代码在生产中应该运行的地方),它返回以下错误:
ibase_fetch_assoc():算术异常、数值溢出或字符串截断无法在字符集之间音译字符
任何人都知道如何使它工作?
PS这里的文档说http://www.php.net/manual/en/function.ibase-query.php
如果您在使用此功能时以及在 ibase_query() 之后收到一些错误,例如“算术异常、数字溢出或字符串截断。无法在字符集之间转写字符”(当您尝试使用带有重音符号的字符时会发生这种情况),您必须设置字符集(即 ISO8859_1 或您当前的字符集)。
这是我的解决方案吗?如果是我应该如何设置字符集?