Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IIS、MS SQL和PHP-SQL选择在PHP中不起作用_Php_Mysql_Iis - Fatal编程技术网

IIS、MS SQL和PHP-SQL选择在PHP中不起作用

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

我有一个本地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';
$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);


  ?>