php - 尝试找ID还是使用JOIN哪个更有效

标签 php mysql join

我创建了这个小函数来查找用户的 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"]'");

您认为哪一个更好或有效?

最佳答案

  1. 不要将密码存储为 Cookie
  2. 永远不要信任用户输入,您的查询会受到 SQL 注入(inject)攻击
  3. 不要使用mysql_*函数,使用PDO或mysqli_*,并使用准备好的语句来防止SQL注入(inject)攻击

我建议了解 prepared statements ,并使用PDOMySQLi -this article将帮助您决定哪个。如果您选择 PDO,here is a good tutorial .

顺便说一句,我认为你的第一个解决方案更好(但你必须纠正很多东西)

关于php - 尝试找ID还是使用JOIN哪个更有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15688882/

相关文章:

mysql - 显示两个表的输出,但通过第三个表匹配它们

php - 将多个数组插入mysql数据库

php - 如何在 PHP/MySQL 中对特定日期范围内的行求和

php - 动态 GD 图像宽度文本

mysql - 网站照片库

java - 访问 GAE DB 给出 AccessControlException

javascript - 表单提交期间的 php 确认消息

mysql - SQL - 如果相同的记录不在表 Y 中,则从表 X 中删除记录

mysql - 有没有更好的方法来执行这些 mysql 查询?

mysql - 从两个表中获取所有记录,但从第二个表中仅获取不在第一个表中的记录