본문 바로가기
MySql

MySQL 데이터베이스에 PHP 삽입이 작동하지 않음

by 베이스 공부 2020. 12. 14.
반응형

인사말 나는 텍스트를 편집하고 나중에 사용할 수 있도록 db에 저장할 수 있도록 다음 PHP 스크립트를 만들었습니다. 그러나 업데이트 / 삽입 쿼리에서 약간의 걸림돌이 발생했습니다. 내가 뭘 잘못하고 있는지 잘 모르겠지만 명령 중 하나만 실행됩니다. 이것이 호스팅 문제인지 또는 내가 잘못하고 있는지 확실하지 않습니다.

어떤 아이디어?

if (isset($_SESSION["logged"]) && $_SESSION["logged"]==1){  
    if ($_POST['action']=="edit"){
        $query=mysql_query("select * from page where active=1 AND heading='".$_POST['selectedpage']."'");
        $row = mysql_fetch_array($query, MYSQL_ASSOC);

        echo "<h1>HTML Editor </h1><br>";
        echo "<form name='saveform' action='./action.php'  method='post'>";
        echo "<textarea rows='100' cols='100' name='updateBox'>".$row['content']."</textarea>";
        echo "<br><input name='action' type='submit' value='save edit'>";
        echo "<input name='heading' type='hidden' value='".$row['heading']."'>";
        echo "</form>";
    } else if($_POST['action']=="save edit"){
        $query=mysql_query("UPDATE page SET active='0' where heading='".$_POST['heading']."'");
        $query=mysql_query("INSERT into page(heading,content,active) values('".$_POST['heading']."','".$_POST['updateBox']."','1')");
        echo "<p>Changes saved succesfully!</p>";
        echo "$_POST['updateBox']";
    }
}

 

해결 방법

 

쿼리를 실행할 때마다 echo mysql_error ($ query) 를 호출하면 해당 쿼리에 오류가 있는지 확인할 수 있습니다. 쿼리 콘텐츠에 문제가있을 수 있습니다.


편집 성을 위해 수정 :)

제쳐두고, 일반적으로 이러한 종류의 오류를 자동으로 처리하는 빠른 데이터베이스 래퍼 또는 함수 처리기를 만드는 것은 매우 쉽습니다. 저는 클래스 기반 래퍼를 사용하지만 지금까지 그렇게하고 싶지 않다면 다음과 같이 할 수 있습니다.

//very quick-and-dirty
function queryOrDie($query)
{
    $query = mysql_query($query);
    if (! $query) exit(mysql_error());
    return $query;
}

이를 통해 모든 쿼리를 전달할 수 있으며 디버깅을 더 쉽게 할 수 있습니다. 데이터베이스 래퍼 클래스도 많이 있습니다. 한 번 살펴 보시는 것이 좋습니다. 그들은 삶을 훨씬 쉽게 만듭니다. :)

 

참조 페이지 https://stackoverflow.com/questions/2097728

 

 

반응형

댓글