Php 两个mysql查询中的一个不显示结果
我正在学习PHP,我需要通过id或slug从数据库中选择一些媒体。我可以问一下为什么这个代码工作得很好吗:Php 两个mysql查询中的一个不显示结果,php,mysql,Php,Mysql,我正在学习PHP,我需要通过id或slug从数据库中选择一些媒体。我可以问一下为什么这个代码工作得很好吗: index.php?id=1 if( isset( $_GET['id'] ) ) { $id = $_GET['id']; $query = mysql_query("SELECT * FROM media WHERE id = $id"); while($row=mysql_fetch_array($query)) { echo $row['
index.php?id=1
if( isset( $_GET['id'] ) ) {
$id = $_GET['id'];
$query = mysql_query("SELECT * FROM media WHERE id = $id");
while($row=mysql_fetch_array($query)) {
echo $row['slug'];
}
}
这不是吗
index.php?slug=first-post-slug
if( isset( $_GET['slug'] ) ) {
$slug = $_GET['slug'];
$query = mysql_query("SELECT * FROM media WHERE slug = $slug");
while($row=mysql_fetch_array($query)) {
echo $row['id'];
}
}
第二段代码不返回任何内容,第一段代码返回正确的slug/ 您应该转义变量:
$slug = mysql_real_escape_string($_GET['slug']);
$query = mysql_query("SELECT * FROM media WHERE slug = '". $slug ."'");
您还应该将id
转换为int:
$id = (int) $_GET['id'];
您应该转义变量:
$slug = mysql_real_escape_string($_GET['slug']);
$query = mysql_query("SELECT * FROM media WHERE slug = '". $slug ."'");
您还应该将id
转换为int:
$id = (int) $_GET['id'];
您需要在
$slug
周围添加引号。否则,您的查询在MySQL解析器看来就像:
SELECT * FROM media WHERE slug = first-post-slug
这不是有效的SQL查询。您需要在
$slug
周围添加引号。否则,您的查询在MySQL解析器看来就像:
SELECT * FROM media WHERE slug = first-post-slug
这不是一个有效的SQL查询。我猜id是一个整数,slug是一个字符串。你不应该首先使用
mysql\u
函数。我猜id是一个整数,slug是一个字符串。你不应该首先使用mysql\u
函数。好的,谢谢你的努力,为我指明了正确的道路,谢谢你的努力,为我指明了正确的道路