2013-03-30 85 views
1

我需要從我的數據庫表中檢索自動增量字段。我嘗試了以下,但$id總是隻是空的。mysql_insert_id()沒有返回值 -

插入也起作用。

我的表如下: ID int(9) NOT NULL auto_increment,

id被設置爲主要

我在做什麼錯? $ conn = mysql_connect($ host,$ username,$ password); mysql_select_db($ database,$ conn)或死(「無法選擇數據庫」); 包括「update_activity.php」; updateActivity(「登錄」,「On Break」);

$date = date("m/d/y"); $starttime = time(); 
    $sesh = $_SESSION['fname']." ".$_SESSION['lname']; 
    $q = "INSERT INTO `breaks` (date, starttime, user) VALUES ('".$date."', '".$starttime."', '".$sesh."')"; 

    $query = mysql_query($q, $conn); 
    $id = mysql_insert_id($conn); 

    echo var_dump($id); exit; 

編輯,以顯示我最近嘗試

+1

至少'PDO',看紅框中http://www.php.net/manual/en/function.mysql-insert-id.php –

+0

天啊..我知道所有關於mysqli謝謝你的第十億提醒 –

+0

任何人都得到了答案btw? –

回答

3

已閱讀所有評論和每個回覆。 其中只有一個是可能的:

  1. 無論是查詢工作正常,或
  2. 你沒有得到生成的主鍵。

這兩個都不可能是真的。

定義,你如何知道查詢正在工作?你知道運行查詢之前和之後的最大PK嗎?是插入從其他地方或線程,甚至其他用戶發生?查詢從代碼或從你的mysql客戶端正常工作?

爲了診斷問題,我們必須走正常的路。

  1. 在調用mysql_query之前轉儲生成的查詢。
  2. 將錯誤檢查系統包裝在您的查詢調用中,以便php可以告訴您查詢是否正常工作。我相信只要通過這兩個步驟,你就會意識到問題的根源。

    error_reporting(E_ALL); 
    ini_set('display_errors','on'); 
    
    echo "before calling: $q\n"; 
    $query = mysql_query($q, $conn); 
    if(!$query) 
    { 
        echo "Error:" . mysql_error($conn); 
        return; 
    } 
    echo " generated id:" . mysql_insert_id($conn); 
    
+0

,這給了我一些想法。我能夠修復它。謝謝。 –

0

從這個代碼從這裏提取借鉛:

http://php.net/manual/en/function.mysql-insert-id.php

<?php 
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db('mydb'); 

mysql_query("INSERT INTO mytable (product) values ('kossu')"); 
printf("Last inserted record has id %d\n", mysql_insert_id()); 
?> 
0

與您的插入查詢的問題

$q = "INSERT INTO `breaks` (date, starttime, user) 
     VALUES ('".$date."', 
       '".$starttime."', 
       '".$_SESSION['fname'] $_SESSION['lname']."')"; 

嘗試與正在使用最過時的「MySQL的」東西像「mysql_insert_id()」這個

和主要的東西

1

@adelphia據我得到的想法有查詢的問題被執行。 plz檢查查詢是否正確

+0

查詢很好。它被插入到表格中。 –

+0

我的意思是有一些其他的方式,我可以改善它。 –

0

存儲您想要傳入數組或變量的值,並將其傳入插入查詢中。 它應該工作正常,然後...

+1

這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你可以隨時評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/faq#reputation),你將能夠[評論任何帖子](http://stackoverflow.com/privileges/comment)。 – pb2q

+0

這並沒有真正回答這個問題。如果您有不同的問題,可以通過單擊[提問](http://stackoverflow.com/questions/ask)來提問。一旦你擁有足夠的[聲望](http://stackoverflow.com/faq#reputation),你也可以[添加賞金](http://stackoverflow.com/privileges/set-bounties)來吸引更多的注意力。 。 – Vishal