//require_once("../StoredProcedure/connect.php");
  $conn=mysql_connect("localhost","root","") or die(mysql_error);
  mysql_select_db("politicalforum",$conn);

 function updateThread($threadID, $content)
 {
     mysql_query("UPDATE threads
                  SET content='$content'
                  WHERE thread_id=$threadID") ;
    // $res = mysql_query($sql) or trigger_error(mysql_error().$sql);
     mysql_close();
 }


我每次都得到这个。.我在做什么错?


  没有选择数据库。


我正在从外部文件中调用该函数。

if(isset($_GET['threadID']) && isset($_POST["reply"]) && isset($_POST['textareas']))
   {

        updateThread($_GET['threadID'], $_POST['textareas']);

       $postValid=TRUE;
   }

最佳答案

您的连接可能超出范围,导致mysql_query针对上下文的数据库对象运行,该对象在updateThread触发时尚不存在。

在这种情况下,您需要将连接传递到mysql_query内部的updateThread函数中。从体系结构上讲,您可以通过两种方式进行此操作:

1)打开并关闭updateThread函数内部的连接:

function updateThread($threadID, $content)
{
   $conn=mysql_connect("localhost","root","") or die(mysql_error);
   mysql_select_db("politicalforum",$conn);
   mysql_query("UPDATE threads
                SET content='$content'
                WHERE thread_id=$threadID", $conn) ;
   mysql_close($conn);
   $conn = null;
}


2)如果要在其他函数中使用相同的连接,请将连接作为变量传递给updateThread。脚本完成后,PHP将自动关闭并释放您的MySQL连接:

function updateThread($threadID, $content, $conn)
{
   mysql_query("UPDATE threads
                SET content='$content'
                WHERE thread_id=$threadID", $conn) ;
}

关于php - 找不到数据库! mysql错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7867545/

10-09 07:36