2014-11-03 56 views
0

我通过PHP脚本连接到SQL服务器并显示在浏览器中检索到的内容。通过PHP连接到数据库并在浏览器上显示内容

的index.html

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="ISO-8859-1"> 
<title>Insert title here</title> 
<link rel="stylesheet" type="text/css" 
href="http://cdn.sencha.com/ext/trial/5.0.0/build/packages/ext-theme-neptune/build/resources/ext-  
theme-neptune-all.css"> 
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script> 
<script type="text/javascript" src="app.js"></script> 
<script type="text/php" src="connection.php"></script> 

</head> 
<body> 
</body> 
</html> 

app.js

document.addEventListener('DOMContentLoaded', function() { 

    d3.json("connection.php", function (data) { 
     document.write(data); 
    }); 
}); 

connection.php

<?php 

// Server Name 
$myServer = "10.112.1.2"; 

// Database 
$connectionInfo = array("UID" => $uid, "PWD" => $pwd, "Database"=>"logs", "CharacterSet"=>"UTF-8"); 

$conn = sqlsrv_connect($myServer, $connectionInfo); 
if (!$conn) { 
    $message = "Connection failed"; 
    echo "<script type='text/javascript'>alert('$message');</script>"; 
} else { 
    $message = "Connected"; 
    echo "<script type='text/javascript'>alert('$message');</script>"; 
} 

$sql = "SELECT * FROM dbo.logsData"; 
$data = sqlsrv_query($conn, $sql); 
if($data === false) { 
    echo "Error in executing query.</br>"; 
    die(print_r(sqlsrv_errors(), true)); 
} 

$result = array(); 

do { 
    while ($row = sqlsrv_fetch_array($data, SQLSRV_FETCH_ASSOC)){ 
     $result[] = $row; 
    } 
} while (sqlsrv_next_result($data)); 

echo json_encode($result); 

sqlsrv_free_stmt($data); 
sqlsrv_close($conn); 
?> 

所有3个文件都在同一个文件夹中。 浏览器只显示null,我没有从.php文件中找到任何日志信息。我的方法正确吗?我使用正确的JavaScript事件吗?

+0

裹一切都在一个try/catch(http://php.net/manual/en/language.exceptions.php)如果你的PHP,这将告诉你。 ini设置隐藏了一些错误。 – 2014-11-03 08:29:09

+0

其他一切看起来不错?我如何测试单独的连接? – Natasha 2014-11-03 08:35:04

+0

如果您只想检查与连接对象关联的值,请使用[var_dump](http://php.net/manual/en/function.var-dump.php)。 – 2014-11-04 03:12:35

回答

0

更改connection.php这样:

if (!$conn) { 
    $message = "Connection failed"; 
    echo "<script type='text/javascript'>alert('$message');</script>"; 
} else { 
    header('Content-Type: application/json'); 
} 

您需要更改您的响应的MIME类型。此外,除了json数据外,您无法打印任何其他内容。这是这样,我从你的代码中删除这些行:

$message = "Connected"; 
    echo "<script type='text/javascript'>alert('$message');</script>"; 
相关问题