IIS、MS SQL和PHP-SQL选择在PHP中不起作用
我有一个本地MS SQL数据库,在我的服务器上的IIS上有一个web PHP应用程序 在IIS上,我成功地连接了PHP,我的MS SQL数据库添加了连接字符串,我看到了我的表 但是,当我在PHPWeb应用程序中使用任何SQLSelect时,它都不起作用。不显示任何数据或任何错误,例如:IIS、MS SQL和PHP-SQL选择在PHP中不起作用,php,mysql,iis,Php,Mysql,Iis,我有一个本地MS SQL数据库,在我的服务器上的IIS上有一个web PHP应用程序 在IIS上,我成功地连接了PHP,我的MS SQL数据库添加了连接字符串,我看到了我的表 但是,当我在PHPWeb应用程序中使用任何SQLSelect时,它都不起作用。不显示任何数据或任何错误,例如: /* Connect to a MySQL database using driver invocation */ $dsn = 'mysql:dbname=dbname;host=localhost'; $us
/* Connect to a MySQL database using driver invocation */
$dsn = 'mysql:dbname=dbname;host=localhost';
$user = 'dbuser';
$password = 'dbpass';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
$results = mysql_query("SELECT id FROM users");
while($row = mysql_fetch_array($results)) {
$name = $row['id']
?>
<tr>
<td><?php echo '$name'?></td>
</tr>
<?php
}
?>
</tbody>
</table>
对于pdo连接,如下所示
$sql = $dbh->prepare("SELECT id FROM users");
$sql->execute();
while($result = $sql->fetch(PDO::FETCH_ASSOC)){
?>
<tr>
<td><?php echo $result['name'];?></td>
</tr>
<?php } ?>
混合这些API是行不通的——也许只使用像这样的PDO方法
/* Connect to a MySQL database using driver invocation */
try {
/* mysql server */
/* $dsn = 'mysql:dbname=dbname;host=localhost'; */
/* MS SQL Server */
$dsn = 'sqlsrv:Database=dbname;Server=localhost';
$user = 'dbuser';
$password = 'dbpass';
$dbh = new PDO($dsn, $user, $password);
$sql='select * from users';
$results=$dbh->query( $sql );
if( $results ){
while( $rs=$results->fetch( PDO::FETCH_OBJ ) ){
echo "<tr><td>{$rs->name}</td></tr>";
}
}
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
请按照以下代码操作:
MS SQL或SqlSrv和MySql不在sames驱动程序上工作。您必须知道您使用的是哪一个,以及find PHP函数是否能够处理它 注意:用于使用驱动程序的PHP扩展必须安装在服务器上,并在PHP.ini文件上激活 对于MySql,请不要使用MySql\u xxx不推荐的函数,而应使用mysqli\u xxx 您可以在这里找到mysql和mssql php函数的文档和示例代码: MySql: php.net/mysqli_fetch_数组 SqlSrv: php.net/sqlsrv_fetch_数组 那么,您的数据库引擎是什么
希望这会对您有所帮助,干杯现在与select一起工作也很好,使用以下代码:
<?php
$serverName = "AC-CLOUD"; //serverName\instanceName
$connectionInfo = array( "Database"=>"Data", "UID"=>"sa", "PWD"=>"Masterkey2010");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
$sql = "SELECT Code, Name FROM StoreCards";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
echo $row['Code'].", ".$row['Name']."<br />";
}
sqlsrv_free_stmt( $stmt);
?>
现在我如何将这两个值设置到表中?这是最后一点。感谢您的耐心和时间。尝试添加错误报告-error\u reportingE\u ALL;ini设置“显示错误”,1;为什么要使用PDO连接,然后尝试运行不推荐的mysql_查询?永远不会工作你知道MySQL和MS SQL或SQL Server不是一回事,对吗?或者,您应该使用带有正确连接字符串的PDO。您好,我有需要连接的MS SQL数据库。连接失败:SQLSTATE[HY000][1045]使用密码拒绝用户'sa'@'localhost'的访问:Yes现在注意到了吗?您使用的是MS SQL数据库,而不是mysqlYes MS SQL数据库:
<?php
$serverName = "AC-CLOUD"; //serverName\instanceName
$connectionInfo = array( "Database"=>"Data", "UID"=>"sa", "PWD"=>"Masterkey2010");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
$sql = "SELECT Code, Name FROM StoreCards";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
echo $row['Code'].", ".$row['Name']."<br />";
}
sqlsrv_free_stmt( $stmt);
?>