SQL Serverデータベースのクエリを実行しようとしましたが、多対多の関係があります。私は関係テーブルとの行を必要とするテーブルをリンクし、一意のID、この場合は$ guidを接続します。sqlsrv_num_rowsを持つPHP
クエリは機能することがあります。それはうまくいくでしょうし、別のテーブルの$ guidだけを切り替えると、テーブルを見つめていても新しい$ guidに関連付けられた値があっても失敗します。
<?php
$guid = '{893C7BF8-E8C5-41D5-9C61-A72CF62DDBA8}';
// Connect to Database
$server = "#@#($#";
$connectionSettings = array("Database"=>"db", "UID"=>"user", "PWD"=>"pword");
$connection = sqlsrv_connect($server, $connectionSettings);
if (!$connection){
die("Failed Connection");
}
// Prepare and Execute Query
$sql = "SELECT *
FROM STREAMS.ATTACHMENTS a INNER JOIN STREAMS.RELATTACHMENTS ra
ON a.ROWGUID = ra.ATTACHMENT_GUID
WHERE ra.FEATURE_GUID = '" . $guid . "'";
$results = sqlsrv_query($connection, $sql);
$rowCount = sqlsrv_num_rows($results);
if ($rowCount === false)
echo "failure";
else
echo $rowCount;
while($row = sqlsrv_fetch_array($results)){
echo "loop";
}
?>
でも見知らぬ人、このコードへの出力は以下の通りです:
failurelooploop
だからsqlsrv_num_rowsコマンドが結果に行がカウントされないことを意味...しかし、それはまた、同じ結果を意味しますwhileループは2回周りしたので、setには2行あります。
誰かがこのファンキーな行動を説明できますか?
ありがとうございました。
配列([0] =>配列([0] => IMSSP [SQLSTATE IMSSP [1] => -50 [code] => -50 [2] =>この関数は、静的またはキーセットのスクロール可能なカーソルを持つ文でのみ機能します。静的またはキーセットのスクロール可能カーソル)。)1looploop。 ///それは実際のGUIDのためのものです...今は動作していないGUIDのために私はまったく同じエラーメッセージを返しますが、最後にはループプループはありません...これは両方の配列に0要素があることを示唆していますか?データベースには、そのクエリの結果があります。私は本当にエラーを理解していない。 – duncanrager
それで、sqlsrv_num_rowsでエラーが発生したのは、デフォルトのフォワードカーソルを使用していたためですが、これは問題ありませんが、他の動作、SQLクエリーは一部のGUIDのみで動作しているとは言えませんその他... GUID列に何が間違っている可能性がありますか? – duncanrager
検索の12時間後...私のsqlsrv_num_rowsを取り除くように私に言っているこのポストのために、私は最終的に私のログインスクリプトを動作させることができました。私は一日中このコードをデバッグするだけで、この投稿を見つけ出して努力しています! YIPEEEE ... – MizAkita