私はWordpressでPHPとMYSQLを使用していますが、ユーザの選択に基づいてデータベースからデータを取得していますが、 。私はで$ wpdbクラスを使用していますデータベースから必要なデータを取得するためにselectクエリを使用していません
(()とget_resultsを準備する)
としようとしたが、コードをデバッグするために、クエリをエコー、それが右の変数を割り当てますデータベース内の値とユーザーの入力値との比較を行うために使用します。
SQLクエリ:
$sql = $wpdb->prepare("select i.siteID
, i.siteNAME
, i.equipmentTYPE
, c.latitude
, c.longitude
, c.height
, o.ownerNAME
, o.ownerCONTACT
, x.companyNAME
, y.subcontractorCOMPANY
, y.subcontractorNAME
, y.subcontractorCONTACT
from site_info i
LEFT
JOIN owner_info o
on i.ownerID = o.ownerID
LEFT
JOIN company_info x
on i.companyID = x.companyID
LEFT
JOIN subcontractor_info y
on i.subcontractorID = y.subcontractorID
LEFT JOIN site_coordinates c
on i.siteID=c.siteID
where
i.siteNAME = %s
AND
o.ownerNAME = %s
AND
x.companyNAME = %s
",$site_name,$owner_name,$company_name);
echo $site_name;
$query_submit =$wpdb->get_results($sql);
foreach ($query_submit as $obj) {
echo "query is working";
echo "<table width='30%' ";
echo "<tr>";
echo "<td>".$obj->siteNAME."</td>";
echo "<td>".$obj->ownerNAME."</td>";
echo "<td>".$obj->companyNAME."</td>";
echo "<td>".$obj->subcontractorNAME."</td>";
echo "<td>".$obj->siteID."</td>";
echo "<td>".$obj->equipmentTYPE."</td>";
echo "<td>".$obj->latitude."</td>";
echo "<td>".$obj->longitude."</td>";
echo "<td>".$obj->height."</td>";
echo "<td>".$obj->ownerCONTACT."</td>";
echo "<td>".$obj->subcontractorCONTACT."</td>";
echo "<td>".$obj->subcontractorCOMPANY."</td>";
echo "</tr>";
echo "</table>";
}
私は、SQL
エコー$ sqlをエコーしようとしたコードをデバッグするために、 右側の変数に割り当てられている値を持つsqlクエリが表示されます。
私は、クエリを変更し、%sのの代わりに文字列として値をつけた後、私は上記の結果を得ました。 %は配列ですが、文字列を置くと正常に動作するため、問題が発生していないことを認識しました。 私はこのエラーになります変換しないので、私は、文字列を配列に変換しています:私は配列として選択したデータを取得するために、クエリで反復したことが起こっていた私の問題を解決し
Xdebug: Fatal error: Uncaught Error: Cannot use object of type stdClass as array in /opt/lampp/htdocs/wordpress/wp-content/themes/wp-portfolio/search-info.php:245 Stack trace: #0 /opt/lampp/htdocs/wordpress/wp-includes/template-loader.php(74): include() #1 /opt/lampp/htdocs/wordpress/wp-blog-header.php(19): require_once('/opt/lampp/htdo...') #2 /opt/lampp/htdocs/wordpress/index.php(17): require('/opt/lampp/htdo...') #3 {main} thrown in /opt/lampp/htdocs/wordpress/wp-content/themes/wp-portfolio/search-info.php on line 245. Output triggered in /opt/lampp/htdocs/wordpress/wp-content/plugins/query-monitor/collectors/php_errors.php on line 163
ポストをプレーンテキストでのクエリ。あなたが返すと信じているデータを表示します。 –
@PaulSpiegel私は質問を編集し、返さなければならないと思われるデータを追加することを理解していませんでした –
@Strawberry何を求めていますか? –