我正在尝试从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.“节点”(双引号)。是否有可能在php中的sql行中转义双引号。我该如何解决这个问题?
答案 0 :(得分:2)
sql="SELECT T."Node" from <table name> T";
必须是
sql="SELECT T" . $node. " from <table name> T";
如果$ node是var,
sql="SELECT T.\"Node\" from <table name> T";
否则要逃避报价。
您可能希望使用一些带有语法和错误突出显示的编辑器,例如: netbeans,eclipse,notepad ++ ...
答案 1 :(得分:0)
你可以摆脱桌子周围的引号。那些是不需要的。
$sql="SELECT T.Node from <table name> T";
答案 2 :(得分:0)
这里有语法错误:
$ sql =“SELECT T.”节点“来自T”;
如果要在字符串中使用引号,请使用文字字符串(单引号):
$ sql ='SELECT T.“节点”来自T';