0

我正在尝试从 php 连接到 oracle 表。我已经配置并测试了 odbc 是否可以正常工作。我创建了以下用于测试连接的 php 文件,但我得到了

这是代码:

<html>
<body>

<?php
$conn=odbc_connect('<dsn name>','<username>','<password>');
if (!$conn) {exit("Connection Failed: " . $conn);}
$sql="SELECT T."Node" from <table name> T";
$rs=odbc_exec($conn,$sql);
if (!$rs) {exit("Error in SQL");}
echo "<table><tr>";
echo "<th>Companyname</th>";
echo "<th>Contactname</th></tr>";
while (odbc_fetch_row($rs))
{
    $compname=odbc_result($rs,"CompanyName");
    $conname=odbc_result($rs,"ContactName");
    echo "<tr><td>$compname</td>";
    echo "<td>$conname</td></tr>";
}
odbc_close($conn);
echo "</table>";
?>

</body>
</html> 

我的版本:

C:\PHP>php --version
PHP 5.3.26 (cli) (built: Jun  5 2013 19:16:29)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies

我在 php.ini 文件上配置了错误,我收到了这个错误:

Parse error: syntax error, unexpected T_STRING in C:\inetpub\wwwroot\test.php on line 8

它在抱怨 sql 行。它不喜欢这个 T."Node" (双引号)。是否可以在 php.ini 中的 sql 行中转义双引号?我将如何解决这个问题?

4

3 回答 3

2
sql="SELECT T."Node" from <table name> T";

一定是

sql="SELECT T" . $node. " from <table name> T";

如果 $node 是一个变量,

sql="SELECT T.\"Node\" from <table name> T";

否则要转义引号。

您可能想使用一些带有语法和错误突出显示的编辑器,例如 netbeans、eclipse、notepad++...

于 2013-06-11T15:28:43.220 回答
0

您可以摆脱桌子周围的引号。这些是不需要的。

$sql="SELECT T.Node from <table name> T";
于 2013-06-11T15:29:53.770 回答
0

这里有一个语法错误:

$sql="SELECT T."Node" from T";

如果要在字符串中使用引号,请使用文字字符串(单引号):

$sql='SELECT T."Node" from T';

于 2013-06-11T15:30:06.433 回答