Mam bazę sql do której łączę się w taki sposób:
class ODBCSocketServer {
var $sHostName;
var $nPort;
var $sConnectionString;
function ExecSQL($sSQL) {
$fToOpen = fsockopen($this->sHostName, $this->nPort, &$errno, &$errstr, 60);
if (!$fToOpen)
{
$sReturn = '<?xml version=\\"1.0\\" encoding=\\"windows-1250\\"?>\\r\\n<result state=\\"failure\\">\\r\\n<error>$errstr</error>\\r\\n</result>\\r\\n';
}
else
{
$sSQL = HTMLSpecialChars($sSQL);
$sSend = "<?xml version=\\"1.0\\" encoding=\\"windows-1250\\"?>\\r\\n<request>\\r\\n<connectionstring>$this->sConnectionString</connectionstring>\\r\\n<sql>$sSQL</sql>\\r\\n</request>\\r\\n";
fputs($fToOpen, $sSend);
while (!feof($fToOpen))
{
$sReturn = $sReturn . fgets($fToOpen, 128);
}
fclose($fToOpen);
}
return $sReturn;
}
}
$oTest = new ODBCSocketServer;
$oTest->sHostName = "*.*.*.*";
$oTest->nPort = 9628;
$oTest->sConnectionString = "DSN=sql;UID=<user>;PWD=<pasword>;";
$sResult = $oTest->ExecSQL("SELECT * FROM <jakas_tabela>");
function startElement($parser, $name, $attribs)
{
if (strtolower($name) == "row")
{
print "<tr>";
}
if (strtolower($name) == "column")
{
print "<td>";
}
if (strtolower($name) == "error")
{
print "<tr><td>";
}
if (strtolower($name) == "result")
{
print "Table of Results: <br><table border=1>";
}
}
function endElement($parser, $name)
{
if (strtolower($name) == "row")
{
print "</tr>";
}
if (strtolower($name) == "column")
{
print "</td>";
}
if (strtolower($name) == "error")
{
print "</td></tr>";
}
if (strtolower($name) == "result")
{
print "</table> <br>End Of Results<br>";
}
}
function characterData($parser, $data)
{
print "$data";
}
$xml_parser = xml_parser_create(windows-1250);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!xml_parse($xml_parser, $sResult)) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
else
{
echo("Successful XML parse. ");
}
print "Raw data results: <br>";
xml_parser_free($xml_parser);
Ten skrypt łączy się za pomocą socketów do ODBC na windowsie, i problem jest na końcu jak pobiera dane. Chciałbym, aby mi je wrzucał do jakiejś tablicy albo wiersza, a nie wyrzucał je jako XML. Ma ktoś pomysł jak to zrobić??