Mysql& PHP不会回显查询结果

时间:2014-04-04 15:44:05

标签: php mysql

<?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用户,也不是英语我的第一语言所以请求不要反对我。

3 个答案:

答案 0 :(得分:2)

<强>解决

取自评论:

“好的地址是localhost:8080/details.php?Land=%20Belgie$id = $_GET['Land'];是ID,所以Belgie应该是$id但是var_dump($result)它一直在给bool(false)

  • 基本上你问SQL的是找(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 statementsPDO

mysql_*函数已弃用,将从以后的PHP版本中删除。


<强>脚注:

mysql_*函数弃用通知:

http://www.php.net/manual/en/intro.mysql.php

从PHP 5.5.0开始,不推荐使用此扩展,不建议用于编写新代码,因为将来会删除它。相反,应使用mysqliPDO_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>");