首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL WHERE ID结转

问SQL WHERE ID结转
EN

Stack Overflow用户
提问于 2012-08-14 01:44:13
回答 2查看 115关注 0票数 0

基本上我已经创建了两个php页面。一个人选择我的整个表格,只显示日期和其中的id号。每个日期都有一个指向display.php文件的链接。它将ID号连同它一起拉到下一个display.php页面。我想要对display.php文件做的是使用该PHP显示整行。

所以我知道Select * from tablename WHERE id=1会提取这些数据,但是如何将ID号放入WHERE语句中呢?

以下是主页代码:

// SQL query $strSQL = "SELECT * FROM table1";

代码语言:javascript
复制
// Execute the query (the recordset $rs contains the result)
$rs = mysql_query($strSQL);

// Loop the recordset $rs
            while($row = mysql_fetch_array($rs)) {

               // DATE
              $strName = $row['date'];

               // Create a link to display.php with the id-value in the URL
               $strLink = "<a href = 'display.php?ID = " . $row['ID'] . "'>" . $strName . "</a>";

                // List link
               echo "<li>" . $strLink . "</li>";


  }

该代码链接有效,并转到display.php。我如何创建链接使用ID号码拉动它。我会使用post命令吗?

代码语言:javascript
复制
$id= Post['id'] 
then WHERE id = '$id'

?

我确实试过了,但一无所获。有什么建议吗?

使用GET now...still not luck,我尝试了GET语句。在我的地址栏中,它显示了身份证号码。所以我看到身份证号停在路边。我甚至试着回显ID,看看是不是我的代码搞砸了。

代码语言:javascript
复制
<?php 
    $dbhost = 'localhost';
    $dbuser = 'myusername';
    $dbpass = 'mypw';
    $dbname = 'mydbname';
    $id = $_GET['id'];
    mysql_connect($dbhost, $dbuser, $dbpass) or die('MySQL connect failed. ' . mysql_error());
    mysql_select_db($dbname) or die('Cannot select database. ' . mysql_error());
?>


<body>
ID #<?php  echo $id ?>
</body>
</html>

<body>
ID #<?php  echo $id ?>
</body>
</html>

还是不走运

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-14 01:53:24

所以在你的显示文件中,你会这样做

代码语言:javascript
复制
$id = $_GET['ID'];

//DO SANITIZATION ETC ON THE ID HERE TO MAKE SURE ITS SOMETHING WE EXPECTED (AN INT)

$sql = "SELECT STUFF WHERE ID = {$id}"; //FOR BREVITY SAKE DOING AWAY WITH SECURITY 

所以基本上你的第一个脚本所做的是在url查询字符串中传递id,这里传递的值可以在$_GET超级全局数组中访问。

你在这里和其他超级全局变量中访问的任何东西都应该被视为对你的应用程序完全危险。您应该对它进行过滤并从地狱中逃脱,然后在将它插入数据库之前,您必须使用适合您的数据库的正确机制来对它进行转义。否则,您将使自己暴露在SQL注入攻击之下。

票数 0
EN

Stack Overflow用户

发布于 2012-08-14 01:47:56

在查询字符串中传递的值使用GET而不是POST。

Post用于表单变量。

当从querystring获取值时,您还应该意识到SQL注入攻击的危险。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11939476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档