0

我有以下 PHP 代码,它应该获取“id”与 URL 中的内容匹配的列的“第一个”和“最后一个”值。例如,当 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

4 回答 4

3

您没有获取结果。

$row = mysql_fetch_assoc($result);
echo $row['first'];
echo $row['last'];
于 2013-04-11T21:56:08.117 回答
1

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

于 2013-04-11T21:56:47.307 回答
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>"; }
于 2013-04-11T21:56:44.140 回答
0

$result是一种资源,你必须使用mysql_fetch_*功能。另外,我不建议您在 SQL 查询中使用 *(例如,如果您将来更改表结构,结果会混乱。

于 2013-04-11T22:03:16.480 回答