14

MySQL から MS SQL Server に移行し、ルーチン テーブルからすべてのデータをフェッチしようとしています。接続していますが、sqlsrv でデータを取得する方法がわかりません。これは私がどこまで来たかです:

$conn_array = array (
    "UID" => "sa",
    "PWD" => "root",
    "Database" => "nih_bw",
);
$conn = sqlsrv_connect('BILAL', $conn_array);
if ($conn){
    echo "connected";
    $result = sqlsrv_query($db->db_conn,"SELECT * FROM routines");
}else{
    die(print_r(sqlsrv_errors(), true));
}
sqlsrv_close($conn);
?>
4

4 に答える 4

15

最初に私が間違っていなければ、 sqlsrv_connect結果を保存していて$conn 、この結果はリソースであるクラスobjではないので、削除してください$db->conn

この例では、接続してから返されたリソースがある場合はフェッチしますsqlsrv_query

$conn_array = array (
    "UID" => "sa",
    "PWD" => "root",
    "Database" => "nih_bw",
);
$conn = sqlsrv_connect('BILAL', $conn_array);
if ($conn){
    echo "connected";
    if(($result = sqlsrv_query($conn,"SELECT * FROM routines")) !== false){
        while( $obj = sqlsrv_fetch_object( $result )) {
              echo $obj->colName.'<br />';
        }
    }
}else{
    die(print_r(sqlsrv_errors(), true));
}
于 2014-07-02T17:16:07.343 に答える
2

クエリを正常に実行した後sqlsrv_query、たとえば次を使用して結果を取得できますsqlsrv_fetch_array

$result = sqlsrv_query($db->db_conn, "SELECT * FROM routines");
if($result === false) {
    die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC) ) {
    echo $row['column1'].", ".$row['column2']."<br />";
}
于 2014-04-17T11:13:41.150 に答える