2015-06-08 61 views
0

我想要做的是允許用戶創建一個表,並且我想將用戶的用戶ID添加到表的第一行,以便稍後可以訪問它。但是,當試圖插入ID時,我不斷收到一條錯誤消息,說我無法添加它。這裏是我的代碼:無法將ID插入MySQL表

<?php 
    @ $db = new mysqli('localhost', 'root', 'secret', 'Pokemon'); //open db 
    if ($db->connect_error) { 
     echo 'ERROR: Could not connect to database, error is '. $db->connect_error; 
     exit; 
    } else { 
     echo 'Successful connection established<br />'; 
    } 

    $deckName = stripslashes($_POST['deckName']); //sql sanitize for each input. 
    $deckName = $db->real_escape_string($deckName); 

    $checkQuery = "SELECT userID FROM userInfo WHERE userEmail = ?"; 

    $checkStmt = $db->prepare($checkQuery); 

    $checkStmt->bind_param("s", $SESSION['userEmail']); 

    $checkStmt->execute(); 

    if (($checkStmt->errno <> 0) || ($checkStmt->num_rows > 0)) 
    { 
    $checkStmt->close(); 
    echo 'ERROR: Something is wrong'; 
    exit; 
    } 

    $res = $checkStmt->get_result(); 

    $row = $res->fetch_assoc(); 

    $checkStmt->close(); 

    $query = "CREATE TABLE `".$deckName."` (userID int(3), pokeID int(3), pokeName varchar(20), quantity int(1), 
    PRIMARY KEY (userID))"; 

    $stmt = $db->prepare($query); 

    $stmt->execute(); 

    if ($stmt->errno <> 0) 
    { 
     $stmt->close(); 
     $db->close(); 
     echo 'ERROR: Could not create table'; 
     exit; 
    } 

    $stmt->close(); 

    $query = "INSERT INTO `".$deckName."` (userID) VALUES(?)"; 

    $stmt = $db->prepare($query); 

    $stmt->bind_param("i", $row['userID']); 

    $stmt->execute(); 

    if ($stmt->errno <> 0) 
    { 
     $stmt->close(); 
     $db->close(); 
     echo 'ERROR: Could not add to database'; 
     exit; 
    } 

    $stmt->close(); 

    $db->close(); 


    header("Location: viewCards.php"); 
?> 

它創建表,但不會插入userID。我一直在研究這個問題,試圖找出問題所在,並且如果可能的話,我希望有一組新的眼睛來看待它。

+0

什麼是錯誤訊息? – hzq

回答

0

使用$_SESSION['userEmail']代替$SESSION['userEmail']並沒有session_start()

+0

非常感謝!簡單的被忽視的東西。謝謝你的新眼睛! –