2009-04-12 64 views
1

我正在嘗試製作一個網站,其中用戶在一個屏幕上輸入詳細信息,並將它們發佈到以下腳本中。此腳本旨在將這些詳細信息與唯一的整數ID(它所做的)一起存儲在數據庫中,然後生成包含剛剛創建的記錄的唯一ID的兩個鏈接。由於數據庫之前創建了ID而不是頁面,因此我試圖查詢數據庫以獲取最近的記錄(即具有最高唯一ID值的記錄)並在鏈接中使用該數字,但是使用當前腳本ID似乎並未出現在頁面中。它是一個可變類型的東西?有沒有更簡單的方法來獲得剛創建的頁面的ID?代碼如下:從mySQL數據庫中迴應整數

$css = $_POST['css']; 
$shopName = strip_tags($_POST['title']); 
$email = $_POST['email']; 

$con = mysql_connect("***","***","***"); 
if (!$con) 
{ 
    die('Could not connect to database: '. mysql_error()); 
} 

mysql_select_db("***", $con); 

$sql = "INSERT INTO wps_Shops (shopName, shopEmail, shopStyle) 
    VALUES ('$shopName', '$email', '$css')"; 

$quer = mysql_query($sql); 

$result = mysql_query("SELECT * 
        FROM wps_Shops 
        ORDER BY shopId DESC 
        LIMIT 1"); 

$lastShop = mysql_fetch_array($result); 

$id = strval($lastShop['id']); 

echo ("Id: ".$id); 

if ($quer) 
{ 
    echo("<h1>Shop created</h1>"); 
    echo("<p><a href=\"shop.php?id=$id\">Go to shop</a></p>"); 
    echo("<p><a href=\"addproducts.php?id=$id\">Add products</a></p>"); 
} 

mysql_close($con); 

回答

2

在爲插入操作mysql_query()之後,您可以使用mysql_insert_id()來獲取插入行的ID。

mysql_query("INSERT INTO........"); 
$id=mysql_insert_id(); 

1

或者,你可以做如下的MySQL查詢:

$query = "SELECT * FROM wps_Shops WHERE id=LAST_INSERT_ID()"; 
$result = mysql_query($query); 

雖然我很困惑,爲什麼你用 ORDER BY shopId,但在後來的線路呼叫:

$id = strval($lastShop['id']); 

另外,是否真的有任何需要使strval()打電話給?當您撥打echo()時,PHP已爲您完成該類型轉換。並且,目前,無論MySQL的該列數據類型如何,mysql_query()mysqli_query()返回的任何結果數據都以字符串格式返回。