<?php
mysql_connect("localhost", "root", "usbw");
mysql_select_db("europese unie");
$id = $_GET['Land'];
$query = "SELECT `Land`, `Oppervlakte`, `Inwoners`, `Klimaat`, `Motto`, `UTC` FROM `algemene informatie` WHERE `Land` = '$id'";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
$land = $row[0];
echo "$land";
print("<h2>$id</h2>");
print("<br />");
die(mysql_error())
?>
当我试图运行这个代码时,我希望能够回应出现这个查询的第一块土地而不是什么都没有。我不是一个非常有经验的PHP或Mysql用户,也不是英语我的第一语言所以请求不要反对我。
答案 0 :(得分:2)
<强>解决强>
取自评论:
“好的地址是localhost:8080/details.php?Land=%20Belgie
而$id = $_GET['Land'];
是ID,所以Belgie应该是$id
但是var_dump($result)
它一直在给bool(false)
”
(space)Belgie
,因为你的专栏中没有包含空格的Belgie这个词,所以它找不到它;至少这就是我认为正在发生的事情那%20
是一个空间顺便说一句。这可能是问题所在。您可以使用trim()
函数。
使用:
$id = trim($_GET['Land']);
OP:
谢谢print_r($ row);现在给出数组([0] =&gt;比利时[1] =&gt; 31 [2] =&gt; 11 [3] =&gt; gematigd zeeklimaat [4] =&gt; Eendracht maakt macht [5] =&gt; 1)我可以最后继续
旁注:您目前的代码向SQL injection开放。使用mysqli_*
功能。 (我建议您使用prepared statements或PDO)
mysql_*
函数已弃用,将从以后的PHP版本中删除。
<强>脚注:强>
mysql_*
函数弃用通知:
http://www.php.net/manual/en/intro.mysql.php
从PHP 5.5.0开始,不推荐使用此扩展,不建议用于编写新代码,因为将来会删除它。相反,应使用mysqli或PDO_MySQL扩展名。在选择MySQL API时,另请参阅MySQL API Overview以获得进一步的帮助。
这些功能允许您访问MySQL数据库服务器。有关MySQL的更多信息,请访问»http://www.mysql.com/。
可以在»http://dev.mysql.com/doc/找到MySQL的文档。
答案 1 :(得分:1)
请勿使用mysql_connect()
这会过时,请使用mysqli_connect()
。
即:
$connection = new mysqli('host', 'username', 'password', 'db table', 'portnumber');
if (mysqli_connect_errno()){
printf("<b>Connection failed:</b> %s\n", mysqli_connect_error());
exit;
}
运行你通过mysqli对象查询并记住使用注射预防,否则你会让人们乱砍你的网站。
e.g。
http://www.phphaven.com/article.php?id=65
希望有所帮助
答案 2 :(得分:0)
引出变量。
echo $land;
print("<h2>" . $id . "</h2>");