使用echo在PHP中的URL中发送变量

时间:2010-06-01 18:05:54

标签: php mysql url variables

我无法通过谷歌搜索正确的方法来查找URL中的变量。基本上我从表中的MySQL查询打印出一堆结果,我希望每行中的一个条目成为该结果页面的链接。我觉得这很容易,我只是在某个地方错过了撇号或反斜杠,但我无法弄明白。这是导致错误的行:

echo "<a href = \"movies.php/?movie_id='$row['movie_id']'\"> Who Owns It? </a> ";

这是我得到的错误:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

如何解决此错误?

此外,在URL中使用echo和变量的一般指导原则是什么?

5 个答案:

答案 0 :(得分:2)

echo "<a href = \"movies.php/?movie_id='$row['movie_id']'\"> Who Owns It? </a> ";

这里有两件事应该改变。首先,不应该有/ after movies.php。第二个是url变量周围没有任何叛逆。它应该是movie_id = $ row ['movie_id']。每当我使用php变量时,我通常会将其连接起来,而不是将其嵌入引号中。所以最后我会做这样的事情:

echo "<a href=\"movies.php?movie_id=" . $row['movie_id'] . "\"> Who Owns It? </a>";

答案 1 :(得分:0)

Echo或URL与您的问题无关。这是PHP strings syntax

答案 2 :(得分:0)

不允许双引号字符串中的$row['movie_id'](特别是单引号)。可以在没有'的情况下编写它,也可以使用花括号语法:

echo "<a href = \"movies.php/?movie_id='$row[movie_id]'\"> Who Owns It? </a> ";
echo "<a href = \"movies.php/?movie_id='{$row['movie_id']}'\"> Who Owns It? </a> ";

有关详细信息,请参阅variable parsing

答案 3 :(得分:0)

这是一种更好的方式:

$movie_id = urlencode($row["movie_id"]);
echo '<a href="movies.php/?movie_id=', $movie_id, '"> Who Owns It? </a> ';
祝你好运!

答案 4 :(得分:0)

这是一种更好的方法:

$movie_id = urlencode($row["movie_id"]);
echo "<a href=\"movies.php?movie_id={$movie_id}\"> Who Owns It? </a> ";

易于阅读。除了单引号和双引号速度之外,事情不再是一个问题。