基本上我已经创建了两个php页面。一个人选择我的整个表格,只显示日期和其中的id号。每个日期都有一个指向display.php文件的链接。它将ID号连同它一起拉到下一个display.php页面。我想要对display.php文件做的是使用该PHP显示整行。
所以我知道Select * from tablename WHERE id=1会提取这些数据,但是如何将ID号放入WHERE语句中呢?
以下是主页代码:
// SQL query $strSQL = "SELECT * FROM table1";
// 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命令吗?
$id= Post['id']
then WHERE id = '$id'?
我确实试过了,但一无所获。有什么建议吗?
使用GET now...still not luck,我尝试了GET语句。在我的地址栏中,它显示了身份证号码。所以我看到身份证号停在路边。我甚至试着回显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>还是不走运
发布于 2012-08-14 01:53:24
所以在你的显示文件中,你会这样做
$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注入攻击之下。
发布于 2012-08-14 01:47:56
在查询字符串中传递的值使用GET而不是POST。
Post用于表单变量。
当从querystring获取值时,您还应该意识到SQL注入攻击的危险。
https://stackoverflow.com/questions/11939476
复制相似问题