私は一日中、単一の mysql データベースからデータを取得する php スクリプトに取り組んできました。私のスクリプトは正常に動作しましたが、突然 mysql が特定のクエリで行を返さなくなりました。複雑な結合から始まりましたが、今では特定の 1 つのクエリで行が返されません。phpmyadmin に貼り付けたのとまったく同じクエリが行を返します。
まず、クエリ:
$sql = "SELECT tagsetsname_id FROM tagsets_docpaths_sets WHERE documents_paths_id = '233'"; //the '233' comes from {$_SESSION['document']['docpathid']}
このクエリを phpmyadmin に貼り付けると、次の結果が得られます。
tagsetsname_id
0
それが私が望んでいた結果です。タグセット名_id は 0 です。
PHPスクリプトでこれを試すと:
//$db is connection to a database, some queries are working so $db is connected
$sql = "SELECT tagsetsname_id FROM tagsets_docpaths_sets
WHERE documents_paths_id = '233'";
$res = $db->query($sql);
次に、Firebug で $res を確認すると、次の結果が得られました。
mysqli_result(
current_field =
field_count =
lengths =
num_rows =
type =
)
空っぽです。私は困惑しています。
Apache を再起動しました。mysqlを再起動しました。
私が見逃している簡単なことは何ですか?
mysqlは初めてです。データベースが何らかの形で破損している可能性はありますか? 再構築または試すことができるものはありますか?
* *スクリプト
$sql = "SELECT tagsetsname_id FROM tagsets_docpaths_sets \
WHERE documents_paths_id = '{$_SESSION['document']['docpathid']}'";
//{$_SESSION['document']['docpathid']} = 233;
$res = $db->query($sql);
$row = $res->fetch_row();
$firephp->trace($db);
$firephp->group('tags');
$firephp->log('$sql');
$firephp->trace($sql);
$firephp->log('$row');
$firephp->trace($row);
$firephp->groupEnd();
* *デバッグ
mysqli(
affected_rows =
client_info =
client_version =
connect_errno =
connect_error =
errno =
error =
field_count =
host_info =
info =
insert_id =
server_info =
server_version =
stat =
sqlstate =
protocol_version =
thread_id =
warning_count =
)
SELECT tagsetsname_id FROM tagsets_docpaths_sets WHERE documents_paths_id = '233'
$row
null
File Line Instruction
.../create_metatags.php
291
FirePHP->trace( '')
まだ phpmyadmin では、デバッグから貼り付けられた $sql は完全に機能します。私はクレイジーですか?