//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;
}
答案 0 :(得分:3)
您的连接可能超出范围,导致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) ;
}