php - PHP 连接到 Firebird 数据库
问题描述
我是 php 新手。
我正在尝试编写一个简单的内部网站,该网站查看用户输入的工作编号,如果存在则返回客户。(如果您愿意,请验证)。
当使用用于 firebird 的 Windows ODBC 驱动程序在 PC 上设置 WAMP 时,它可以工作。但是,当使用 php5-interbase - interbase/firebird 模块为 php5 设置专用 linux 服务器时,它不起作用。没有错误,只是清除屏幕。
任何人都可以帮助解决问题所在。我认为这是连接,但这对我来说是全新的。
<?php
error_reporting(0);
$jobNumber = $_POST['jobNumber'];
if ($_POST['clear'])
{
$jobNumber="";
$message1="";
}
if ($_POST['enquire'])
{
$dsn = 'DSN=Ostendo Wyma;Driver={Firebird/InterBase(r) driver};Dbname=//Orcus/C:/Program Files (x86)/Ostendo/Database/Ostendo.fdb;CHARSET=NONE;UID=SYSDBA;' ;
$dbh = odbc_connect($dsn, '', '') ;
$sqlstr = "SELECT (CUSTOMER || ' ' || ORDERDESCRIPTION) AS " .'"Result"' . " FROM JOBHEADER WHERE ORDERNUMBER = '" .$jobNumber ."' AND ORDERSTATUS <> 'Closed'" ;
$sqlstr .= ' UNION ';
$sqlstr .= "SELECT ITEMDESCRIPTION AS " .'"Result"' . " FROM ASSEMBLYHEADER WHERE ORDERNUMBER = '" .$jobNumber ."' AND ORDERSTATUS <> 'Closed'";
$sth = odbc_exec($dbh, $sqlstr) ;
$t = odbc_fetch_row($sth) ;
$result = odbc_result($sth, 'Result') ;
$message1 = $jobNumber . " Returns " .$result;
}
?>
<html>
<style>
body
{
font-family:arial;
font-size:12;
}
</style>
<title>Ostendo Test</title>
<form action="" method="POST">
<body>
<table border = 3>
<tr>
<td> Assembly/Job Number: </td>
<td> <input type=text name=jobNumber value="<?php echo $jobNumber;?>" size="50" autofocus>
</tr>
<tr>
<td colspan = 3>
<input type="submit" name="enquire" value="Validate">
<input type="submit" name="clear" value="Clear">
</td>
</tr>
</table>
</form>
<?php
echo "<br><br>";
echo "<font face='arial' size='4'>";
echo $message1;
echo "</font>";
?>
</body>
</html>
我禁用了错误报告(即从 0 更改为 1)并且没有更改或错误消息。然后我完全删除了该行,并且再次没有更改或错误消息。
我打开了PHP错误处理并在刷新页面时得到了以下信息:
Notice: Undefined index: jobNumber in /var/www/Enquire.php on line 2
Notice: Undefined index: clear in /var/www/Enquire.php on line 4
Notice: Undefined index: enquire in /var/www/Enquire.php on line 9
(然后在框/表下方我收到以下错误消息)
Notice: Undefined variable: message1 in /var/www/Enquire.php on line 49
这让我觉得我没有正确声明一些变量。?
当我输入有效的工作参考时,我现在得到以下信息:
注意:未定义的索引:在第 4 行的 /var/www/Enquire.php 中清除
致命错误:在第 12 行的 /var/www/Enquire.php 中调用未定义函数 odbc_connect()
所以我想这与我如何连接到 FB 数据库有关。
解决方案
推荐阅读
- c++ - 在程序中找到最小的变量?
- python - 'str' 对象没有属性 'decode' 错误
- c++ - sdl2中的矩形为整个屏幕设置颜色
- python-3.x - m1 macOS Big Sur 上的 pygame 2.0.0 安装错误
- neo4j - Periodic commit through bolt port in neo4j (java driver)
- javascript - Javascript:仅使用字符串调用对象方法
- r - 检测大写单词的 Stringr 模式
- python - 'with ...as..' 下载图片 selenium
- r - 如何在 R 中获得随机森林中的 Brier 分数?
- c# - 有没有办法对使用 svcutil 生成的客户端代理进行版本控制?