[英]Execute query against MSSQL database using Microsoft PHP Driver 3.2
我正在研究一个项目,该项目将连接到MSSQL数据库并对其执行查询,这肯定是新的。
因此,到目前为止,我要做的是设置WAMP,在php.ini中添加适用于PHP 5.5的Microsoft PHP驱动程序,并使用以下代码成功连接到我的数据库:
<?php
$server = 'servername,1433';
$database = 'database_name';
$user = 'username';
$password = 'pass';
$conn = new PDO("sqlsrv:Server=$server;Database=$database",
"$user", "$password",
array(PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)
);
?>
我正在使用SQL Server2014。仅提及这一点。 所以现在我试图用这个显示数据库表中的一些信息:
<?php
require_once('sqlcon.php');
function GetRow($stmt)
{
return sqlsrv_fetch_array($stmt);
}
$sql = "SELECT * FROM dbo.operations";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}
while( $row = GetRow($stmt) ) {
echo ("<tr>");
echo ("<td>" . $row['id'] . "</tr>");
echo ("<td>" . $row['OperType'] . "</td>");
echo ("<td>" . $row['Acct'] . "</td>");
echo ("<td>" . $row['GoodID'] . "</td>");
echo ("<td>" . $row['PartnerID'] . "</td>");
echo ("<td>" . $row['ObjectID'] . "</td>");
echo ("<td>" . $row['OperatorID'] . "</td>");
echo ("<td>" . $row['Qtty'] . "</td>");
echo ("<td>" . $row['Sign'] . "</td>");
echo ("<td>" . $row['PriceIn'] . "</td>");
echo ("<td>" . $row['PriceOut'] . "</td>");
echo ("<td>" . $row['VatIn'] . "</td>");
echo ("<td>" . $row['VatOut'] . "</td>");
echo ("<td>" . $row['Discount'] . "</td>");
echo ("<td>" . $row['Currency'] . "</td>");
echo ("</tr>");
}
sqlsrv_free_stmt( $stmt);
?>
但是我在浏览器中收到此错误:
致命错误:在第11行调用堆栈中的C:\\ wamp \\ www \\ sql.php中调用未定义函数sqlsrv_query()
时间记忆功能位置1 0.0005 139320 {main}().. \\ sql.php:0
我已经尝试过很多次使用不同的功能,但是都没有运气。 我不知道为什么无法识别sqlsrv_query()函数。
我知道我想念一些东西,但不知道是什么。 提前致谢 。
考虑使用完整的SQL Server PDO API进行以下调整。
您的代码在连接期间声明了PDO,但是您不使用该对象$conn->query()
而是使用$conn
作为sqlsrv_query()
函数中的参数。 因此,您将两个API混为一谈: SQLSRV和PDO 。 为了使用sqlsrv_query() ,您需要使用sqlsrv_connect()进行连接。 否则,请使用query
或prepare
并execute
语句。
<?php
$server = 'servername,1433';
$database = 'database_name';
$username = 'username';
$password = 'pass';
try {
$conn = new PDO("sqlsrv:Server=$server;Database=$database",
$user, $password);
$sql = "SELECT * FROM dbo.operations";
$STH = $conn->query($sql);
$STH->setFetchMode(PDO::FETCH_ASSOC);
}
catch(PDOException $e) {
echo $e->getMessage()."\n";
exit;
}
while($row = $STH->fetch()) {
echo ("<tr>");
echo ("<td>" . $row['id'] . "</tr>");
echo ("<td>" . $row['OperType'] . "</td>");
echo ("<td>" . $row['Acct'] . "</td>");
echo ("<td>" . $row['GoodID'] . "</td>");
echo ("<td>" . $row['PartnerID'] . "</td>");
echo ("<td>" . $row['ObjectID'] . "</td>");
echo ("<td>" . $row['OperatorID'] . "</td>");
echo ("<td>" . $row['Qtty'] . "</td>");
echo ("<td>" . $row['Sign'] . "</td>");
echo ("<td>" . $row['PriceIn'] . "</td>");
echo ("<td>" . $row['PriceOut'] . "</td>");
echo ("<td>" . $row['VatIn'] . "</td>");
echo ("<td>" . $row['VatOut'] . "</td>");
echo ("<td>" . $row['Discount'] . "</td>");
echo ("<td>" . $row['Currency'] . "</td>");
echo ("</tr>");
}
# close the connection
$conn = null;
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.