WHERE子句MySQL中的PHP字符串变量

WHERE子句MySQL中的PHP字符串变量,php,mysql,sql,select,Php,Mysql,Sql,Select,我对这个简单的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_q

我对这个简单的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);
?>
我得到一个结果。当我使用变量时,我没有得到任何数据!我是个新手,我不知道自己做错了什么。任何帮助都将不胜感激。
谢谢大家!

你没有日期,因为你的报价之间有额外的空间

$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. "'";
作为旁注,如果变量的值来自外部,则查询易受攻击。请看下面的文章,了解如何预防它。通过使用
PreparedStatements
可以避免在值周围使用单引号


谢谢您的回答!我也尝试过在中间没有空格,但仍然没有得到任何数据无论如何,你也不应该考虑使用这种方法,“Akis,使用准备好的语句是很容易的,但是它是系统关键的。这是我从ECHO $QueRyGETStudio中得到的。code>SELECT*FROM toho_显示toho_显示的位置。show='gothaf'尽管我在Dreamweaver中测试SQL语句时仍然没有得到任何数据。好的,伙计们!这件事实际上是可行的,我不知道为什么dreamweaver在sql语句测试中不返回任何数据!谢谢大家@JONAST92我会考虑你所说的准备好的声明!谢谢它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。
$query_getShows = "SELECT * FROM toho_shows WHERE toho_shows.show ='". $show. "'";