2017-01-14 1 views
-1

데이터베이스 테이블에 변수를로드하는이 작은 섹션이 있습니다. 이 모두가 갔다 경우 if 문에 실패 있도록데이터베이스에 변수를로드하려고하는데 성공하지 못했습니다.

당신이 $insertResult을 볼 수 있듯이이 출력되지 않습니다 계획은없는 것 :

그것은 $topInsert와 테이블을 쿼리에 변수를로드한다 표 주제 이 점

$topName = $_POST['topName']; 
       $topCat = $_POST['topCat']; 
       $loggedUser = $_SESSION['loggedUser']; 

       echo $topCat; 

       $userID = "SELECT ID FROM users WHERE username = '$loggedUser'"; 
       $getID = mysqli_query($connect, $userID); 
       $rowID = mysqli_fetch_array($getID); 
       $userID = $rowID['ID']; 
       echo $userID; 
       $topInsert = "INSERT INTO topics(topicSubject, topicDate, topicCat, topicBy) VALUES('$topName', NULL, '$topCat', '$userID')"; 
       $insertResult = mysqli_query($connect, $topInsert); 


       if(!$insertResult){ 

        echo "<p style='margin-top: 75px;'>Error: Data could not be loaded to the database. Please try again.</p>"; 
        $sqlRoll = "ROLLBACK;"; 
        $rollResult = mysqli_query($connect, $sqlRoll); 
       } 

나는 테이블의 데이터 유형의 모든 I 입력하려고 무엇을 제대로 일치하지만 제대로 작동하지 않습니다 알아낼 수 없다는 확신합니다.

저는 어제부터이 문제에 시달렸으며 어느 코드가 실패하고 있는지 찾아내는 데 도움이 필요하다고 결정했습니다.

내가 무엇이든 놓친 경우를 대비하여 추가 정보를 요청하십시오.

답장을 보내 주시면 감사하겠습니다.

+0

, 중 예외가 발생 mysqli함으로써 또는 작업 후 오류 메시지를 확인하여 쿼리에서 NULL을 넣지 마십시오 직접. – jeroen

+0

이 API의 장점은 매개 변수화 된 쿼리를 사용할 수 있다는 것입니다. th m을 사용하십시오 !! – Strawberry

+0

유형 변수를 위반하지 않습니까? $ topName, $ topCat, $ userID를 표시하지 않았고 topCat 및 topBy 필드는 int이며 int 필드에 String을 할당하려고 시도했을 수 있습니다. – iwaduarte

답변

1

설정 topicDate 열은 PHPADMIN에 NULL 값을 허용하거나

당신은 오류 처리를 추가 할 필요가
+0

고맙습니다. 내가 이것을 바꿨 더라면 다음 진술로 곧장 갔다. – iixCarbonxZz

0

시험해보세요.

$topName = $_POST['topName']; 
$topCat = $_POST['topCat']; 
$loggedUser = $_SESSION['loggedUser']; 
echo $topCat; 

//check if connection to database is succesfull first, then 

$result = "SELECT ID FROM users WHERE username = '$loggedUser'"; 
if($result->num_rows >0){ 

while($row = $result->fetch_assoc()){ 
    $userID = $row["ID"]; 

} 
} 

$sql = "INSERT INTO topics(topicSubject, topicDate, topicCat, topicBy) VALUES('$topName', NULL, '$topCat', '$userID')"; 


    if(mysqli_query($con, $sql)){ 
     echo "Succesfully added"."<br>"; 
    } 
    else{ 
     echo "Data could not be loaded"."<br>"; 

    } 

    mysqli_close($connect); 
+0

나를 위해 줄'if * $ result-> num_rows> 0)'**로 돌아온다 Notice : 183 행의 C : \ xampp \ htdocs \ phpSiteTest \ topCreate.php에있는 non-object의 속성을 얻으려고 시도 함 ** – iixCarbonxZz

+0

mysql sql 명령 줄에서 SELECT 문을 실행하고 결과가 반환되는지 확인 했습니까? –

+0

@ixxCarbonxZZ 우리에게 : '$ result = "SELECT ID FROM users username = #loggedUser '"; print_r ($ result)' – iwaduarte

관련 문제