この単純なSQLクエリに問題があります。
<?php
require_once('../../Connections/tohoshows.php');
$show ='gothaf';
mysql_select_db($database_tohoshows, $tohoshows);
$query_getShows = "SELECT * FROM toho_shows WHERE toho_shows.show =' ". $show. " '";
$getShows = mysql_query($query_getShows, $tohoshows) or die(mysql_error());
$row_getShows = mysql_fetch_assoc($getShows);
$totalRows_getShows = mysql_num_rows($getShows);
mysql_free_result($getShows);
?>
このようにWHERE句で文字列を直接使用すると
$query_getShows = "SELECT * FROM toho_shows WHERE toho_shows.show ='gothaf'";
結果が出ます。代わりに変数を使用すると、データがありません!私は初心者なので、何が悪いのか分かりません。任意の助けいただければ幸いです。ありがとうございました!
引用符の間に余分なスペースがあるため、日付を取得できません。
$query_getShows = "SELECT * FROM toho_shows WHERE toho_shows.show =' ". $show. " '";
^ HERE ^
これは次に解析されます
SELECT * FROM toho_shows WHERE toho_shows.show =' gothaf '
それを削除すると動作します
$query_getShows = "SELECT * FROM toho_shows WHERE toho_shows.show ='". $show. "'";
補足として、クエリは SQL Injection
変数の値(s)が外部からのものである場合。それを防ぐ方法については、以下の記事をご覧ください。 PreparedStatements
を使用すると、値を単一引用符で囲む必要がなくなります。