2014-02-10 55 views
0
$result = $db->query("INSERT INTO post_items(`post_id`,`content`,`date`,`user_id`,`category_id`) 
    VALUES ('', '".$content."', '".$date."', '".$user_id."', '".$category_id."')"); 

if($result) { 
    echo mysql_insert_id(); 
}else{ 
    echo "Something is wrong. Insert failed.."; 
} 

我的post_id是一個自動增量字段。它給了我一個'0'而不是最後插入的id。返回最後插入的ID在php中不起作用

+2

爲什麼你插入一個空白值'post_id'?也許刪除那 – gwillie

+1

你是什麼MySQL API?你在第一行使用了一個OO接口,它提示'mysqli'或'PDO'。您必須稍後使用相應的函數,而不是'mysql_XXX'。 – Barmar

+0

@gwillie在刪除後不起作用。 post_id是AI – user3277912

回答

0

如果您的查詢真的有效(請確認...),您可能是在混合使用過時的mysql連接器和mysqli連接器。 mysql_insert_id()是來自mysql連接器的功能。改爲使用mysqli_insert_id()

嘗試

if($result) { 
    echo $db->insert_id; 
}else{ 
    echo "Something is wrong. Insert failed.."; 
} 
-1

插入新行的時候,因爲它是auto_increment不包括post_id

0

數據庫

CREATE TABLE MyGuests (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    firstname VARCHAR(30) NOT NULL, 
    lastname VARCHAR(30) NOT NULL, 
    email VARCHAR(50), 
    reg_date TIMESTAMP 
    ) 
     last inserted ID: 

------------------------------------------------------------------- 
    1. Example (MySQLi Object-oriented) 

------------------------------------------------------------------- 
    <?php 
    $servername = "localhost"; 
    $username = "username"; 
    $password = "password"; 
    $dbname = "myDB"; 

    // Create connection 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    // Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    $sql = "INSERT INTO MyGuests (firstname, lastname, email) 
    VALUES ('John', 'Doe', '[email protected]')"; 

    if ($conn->query($sql) === TRUE) { 
     $last_id = $conn->insert_id; 
     echo "New record created successfully. Last inserted ID is: " . $last_id; 
    } else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
    } 

    $conn->close(); 
    ?> 

------------------------------------------------------------------- 
    2. Example (MySQLi Procedural) 

------------------------------------------------------------------- 
    <?php 
    $servername = "localhost"; 
    $username = "username"; 
    $password = "password"; 
    $dbname = "myDB"; 

    // Create connection 
    $conn = mysqli_connect($servername, $username, $password, $dbname); 
    // Check connection 
    if (!$conn) { 
     die("Connection failed: " . mysqli_connect_error()); 
    } 

    $sql = "INSERT INTO MyGuests (firstname, lastname, email) 
    VALUES ('John', 'Doe', '[email protected]')"; 

    if (mysqli_query($conn, $sql)) { 
     $last_id = mysqli_insert_id($conn); 
     echo "New record created successfully. Last inserted ID is: " . $last_id; 
    } else { 
     echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
    } 

    mysqli_close($conn); 
    ?> 

------------------------------------------------------------------- 
    3. Example (PDO) 

------------------------------------------------------------------- 
    <?php 
    $servername = "localhost"; 
    $username = "username"; 
    $password = "password"; 
    $dbname = "myDBPDO"; 

    try { 
     $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
     // set the PDO error mode to exception 
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $sql = "INSERT INTO MyGuests (firstname, lastname, email) 
     VALUES ('John', 'Doe', '[email protected]')"; 
     // use exec() because no results are returned 
     $conn->exec($sql); 
     $last_id = $conn->lastInsertId(); 
     echo "New record created successfully. Last inserted ID is: " . $last_id; 
     } 
    catch(PDOException $e) 
     { 
     echo $sql . "<br>" . $e->getMessage(); 
     } 

    $conn = null; 
    ?>