SQL 其中 ID 结转


SQL WHERE ID carryover

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

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

这是主页代码:

SQL查询 $strSQL ="从表1中选择*";

// 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>";

  }

该代码链接有效并转到显示.php。我将如何使用 ID 号拉动来创建链接。我会使用发布命令吗?

$id= Post['id'] 
then WHERE id = '$id'

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

使用立即获取...还是不是运气我已经尝试过GET语句。在我的地址栏中,它显示了ID号。所以我看到身份证号码随之拉过来。我甚至尝试只是回显 ID,看看是否只是我的代码搞砸了。

<?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>

还是没有运气

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

$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注入攻击。

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

帖子用于表单变量。

从查询字符串中获取值时,还应注意 SQL 注入攻击的危险。