我创建了这个小函数来查找用户的 ID,并且我可以在整个网站上使用该 ID,因为我之前将其包含在 <head>
中。
$result=mysql_query("SELECT ID FROM korisnici WHERE username='".$_COOKIE["user"]."' AND password='".$_COOKIE["pass"]."'");
$get=mysql_fetch_assoc($result);
$ID_KORISNIK=$get["ID"];
if(empty($ID_KORISNIK))
{
echo '
<script>window.location="IDerror.php";</script>
';
}
所以当我想 SELECT 或 INSERT 到数据库时我可以使用
$r=mysql_query("SELECT * FROM uzg WHERE IDkorisnik='$ID_KORISNIK'");
或使用 JOIN
$r=mysql_query("SELECT * FROM uzg JOIN (uzg.IDkorisnik=korisnici.ID) WHERE korisnici.username='$_COOKIE["user"]' AND korisnici.password='$_COOKIE["pass"]'");
您认为哪一个更好或有效?
最佳答案
- 不要将密码存储为 Cookie
- 永远不要信任用户输入,您的查询会受到 SQL 注入(inject)攻击
- 不要使用
mysql_*
函数,使用PDO或mysqli_*
,并使用准备好的语句来防止SQL注入(inject)攻击
我建议了解 prepared statements ,并使用PDO或MySQLi -this article将帮助您决定哪个。如果您选择 PDO,here is a good tutorial .
顺便说一句,我认为你的第一个解决方案更好(但你必须纠正很多东西)
关于php - 尝试找ID还是使用JOIN哪个更有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15688882/