【问题标题】:PHP MySQL queryPHP MySQL 查询
【发布时间】:2011-02-10 05:47:23
【问题描述】:

这段代码有什么问题?

$sql = "SELECT * FROM blogs WHERE blog_id = $'blog_id'"; $result = mysql_query($sql); $rows = mysql_fetch_array($result); $content = $rows['blog_content']; 回声$内容;

错误是:警告:mysql_fetch_array():提供的参数不是第 3 行 C:\Program Files\xampp\htdocs\jordan_pagaduan\blog_delete_edit.php 中的有效 MySQL 结果资源。

【问题讨论】:

  • 你连接到数据库了吗?
  • 是的,现在我知道出了什么问题。感谢您的回复。
  • 确保您已验证 $blog_id 包含您认为的内容。 SQL注入!

标签: php mysql


【解决方案1】:

第一行应该是:

$sql = "SELECT * FROM blogs WHERE blog_id = '$blog_id'";

(将 $ 移到单引号内)

【讨论】:

    【解决方案2】:
    $sql = "SELECT * FROM blogs WHERE blog_id = '$blog_id'";
    $result = mysql_query($sql);
    $rows = mysql_fetch_array($result);
    $content = $rows['blog_content'];
    

    【讨论】:

      【解决方案3】:

      你应该使用:

      $sql = "SELECT * FROM blogs WHERE blog_id = '$blog_id'";
      

      由于开始阅读最佳实践永远不会太早,请注意,对于公共网站,将任何未经清理的输入包含到 SQL 查询中确实很危险,就像您正在做的那样。您可能希望从以下 Stack Overflow 帖子中进一步了解该主题:

      【讨论】:

        【解决方案4】:

        您需要将 $ 符号放在引号中。 而不是这个:

        $sql = "SELECT * FROM blogs WHERE blog_id = $'blog_id'";
        $result = mysql_query($sql);
        $rows = mysql_fetch_array($result);
        $content = $rows['blog_content'];
        
        echo $content;
        

        这样写:

        $sql = "SELECT * FROM blogs WHERE blog_id = '$blog_id'";
        $result = mysql_query($sql);
        $rows = mysql_fetch_array($result);
        $content = $rows['blog_content'];
        
        echo $content;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多