【发布时间】:2013-04-17 11:54:38
【问题描述】:
非常感谢您的回答,他们真的帮了我很多!
我很好奇我做错了什么:我无法从 SQL 语句中获取任何值。
我的数据库表结构:
我的代码:
include('config.php');
$id = $_GET['id'];
$query = "SELECT * FROM upload WHERE id = '$id'";
echo $query."<br/>";
$result = mysql_query($query) or die('error');
print_r($result);
echo $result['id'];
我在测试时得到以下信息:
"SELECT * FROM upload WHERE id = '1'
资源 ID #2"
但是有一个值为 '2' 的 id,但为什么它没有显示在我的 html 中? 只有使用 'while' 语句,我才能得到想要的结果:
while($results = mysql_fetch_array($result))
{
echo $results['filetitle'];
}
对于单个结果是否需要此 while 语句?我的意思是,只能有一个 ID。
【问题讨论】:
-
您使用的是an obsolete database API,应该使用modern replacement。您也容易受到SQL injection attacks的影响,现代 API 可以让您更轻松地从 defend 中获得。
-
您没有运行查询。你回显了一个完美的字符串。我没有看到与数据库的实际连接发生在任何地方。
-
$row = mysql_fetch_array($result);回声 $row['id'];
-
好吧,
mysql_query()返回一个 mysql 资源而不是结果,要获得所需的结果,您需要使用mysql_fetch_array或mysql_fetch_assoc等。参考this -
与数据库的连接写在config.php中。
$connect = mysql_connect($localhost, $dbuser, $dbpass) or die($db_error1); mysql_select_db("$dbname", $connect);($dbname 等不是空的,但我不会把它们放在这里,哈哈。顺便说一下,连接工作正常,与其他参数一起使用。只是好奇为什么我必须在这里使用 while 语句。)