Php mysql\u查询不起作用,但获取正确的id
我有一个表课程的列表类别。我想当用户选择他想要的类别时,他会看到这个类别的新闻列表。 所以我需要的是保存类别的名称,这样我就可以用这个类别在表news news中搜索。 但是功能mysql\u查询不想工作,我不知道问题出在哪里,它显示警告: mysql_fetch_assoc期望参数1是给定的资源布尔值 在里面 按类别列出: 列出带有警告的结果Php mysql\u查询不起作用,但获取正确的id,php,mysql,Php,Mysql,我有一个表课程的列表类别。我想当用户选择他想要的类别时,他会看到这个类别的新闻列表。 所以我需要的是保存类别的名称,这样我就可以用这个类别在表news news中搜索。 但是功能mysql\u查询不想工作,我不知道问题出在哪里,它显示警告: mysql_fetch_assoc期望参数1是给定的资源布尔值 在里面 按类别列出: 列出带有警告的结果 <?php $conn = mysql_connect ("localhost", "root", "") or die ("Соединен
<?php
$conn = mysql_connect ("localhost", "root", "") or die ("Соединение не установлено!");
mysql_select_db('university'); // выбор БД
mysql_query("SET NAMES 'utf8'"); // кодировка
$res = mysql_query("SELECT * FROM news WHERE course = {$_GET['id']}"); /* MISTAKE IS HERE*/
var_dump($res) ;
echo $_GET['id'];
mysql_error();
while($news = mysql_fetch_assoc($res)) {?>
<table border="1" align="center" style="word-wrap: break-word;" width="80%" cellspacing="0" cellpadding="1">
<tr><th width="30">ID</th><th>Название</th></tr>
<tr>
<td><a href="detail.php?id=<?=$news['id']?>"><?=$news['id']?></td>
<td><a href="detail.php?id=<?=$news['id']?>"><?=$news['program']?></td>
</tr><?
}?>
</tbody></table>
因为我使用的是echo$_GET['id'];我看到它得到了我需要的类别名称,但仍然不起作用
是的,我知道使用mysqli或pdo更好
谢谢,它现在可以工作了。如果课程是一个字符串,它应该是:
$id = mysql_real_escape_string($_GET['id']);
$res = mysql_query("SELECT * FROM news WHERE course = '$id'"); /* MISTAKE IS HERE*/
您需要在字符串值周围加引号,并且应该转义参数以防止SQL注入。执行如下选择查询
$res = mysql_query("SELECT * FROM news WHERE course = '{$_GET['id']}'");
查询中{$\u GET['id']}周围缺少引号?另外,永远不要创建这样的sql查询:天哪,是的,现在就可以了为什么你不喜欢我的sql查询?@Vladlena-这是因为你把来自$\u GET的数据直接放到你的查询中。这是非常不安全的——您根本没有检查数据,因此有人可以有效地运行数据库中所需的任何SQL。您需要改用绑定参数。
$res = mysql_query("SELECT * FROM news WHERE course = '{$_GET['id']}'");