为什么这个php查询什么都不打印

时间:2013-04-11 21:53:52

标签: php mysql

我有以下PHP代码,它应该获取列的“first”和“last”值,其中“id”匹配URL中的内容。例如,当网址为../Profile?id=1时,会显示First: Bob Last: Doe,因为Bob Doe已附加到id of 1

我使用以下代码执行此操作:

session_start();
$id = $_GET['search'];
$dbhandle = mysql_connect("localhost", "SocialAdmin", "******") 
    or die("Unable to connect to MySQL");       
$selected = mysql_select_db("socialdonuttesting",$dbhandle)     
    or die("Could not select database");
$result = mysql_query("SELECT * FROM users WHERE id = '$id'");
$first = $result['first'];
$last = $result['last'];
echo "First: $first Last: $last";

但出于某种原因,当我转到First: Last:时,这只是显示../Profile?id=1。有谁知道为什么?

4 个答案:

答案 0 :(得分:3)

您没有获取结果。

$row = mysql_fetch_assoc($result);
echo $row['first'];
echo $row['last'];

答案 1 :(得分:1)

您需要http://php.net/manual/en/function.mysql-fetch-row.php
但是,删除mysql_用法并使用PDO 此外,在您的示例中,您很容易受到SQL注入攻击。

答案 2 :(得分:0)

你没有提取你的查询

试试这个

 session_start();
 $id = $_GET['search'];
 $dbhandle = mysql_connect("localhost", "SocialAdmin", "******") 
 or die("Unable to connect to MySQL");       
 $selected = mysql_select_db("socialdonuttesting",$dbhandle)     
 or die("Could not select database");
 $result = mysql_query("SELECT * FROM users WHERE id = '$id'");
 while($row = mysql_fetch_array($result)){
 $first = $row['first'];
 $last = $row['last'];
 echo "First: ". $first. " Last: ". $last ."</ br>"; }

答案 3 :(得分:0)

$result是一种资源,您必须使用mysql_fetch_*个函数。另外,我不建议您在SQL查询中使用*(例如,如果您将来更改表结构,结果将会搞砸。