2015-08-22 111 views
0

我試圖在創建的網站上創建銷售(想想ebay),用戶輸入所有輸入詳細信息以創建出售能夠的項目,點擊按鈕,所有的信息插入到數據庫表'sellingitems'使用準備好的聲明,現在我遇到的問題是我試圖讓用戶的位置(州&郊區)細節表(用戶),並插入與準備的聲明,所有進入「sellingitems」使用saleState,SaleSuburb在sellingitems表中,我得到的錯誤是PHP/SQL從表單插入數據並使用準備好的語句插入另一個表中的數據

「致命錯誤:語句失敗!您的SQL語法錯誤;請查看與您的MySQL服務器版本對應的手冊,以獲取正確的語法Ë附近「INSERT INTO sellingitems(項目ID,用戶名,CATID,ITEMNAME,ItemDesc,ItemAmount,」在「

我希望這是明確的和可以理解的,我已經研究了很多時間,不能找到INSERT任何與2號線加入或其他方式來幫助我,請問我是否需要澄清任何事情,並提前感謝您的幫助!

$stmt = mysqli_prepare($conn, "INSERT INTO sellingitems (ItemID, UserID, CatID, ItemName, ItemDesc, ItemAmount, TimeFrame, ItemCond, Postage, Returns, SaleState, SaleSuburb) 
    SELECT State, Suburb FROM user WHERE UserID = '$UID' 
    VALUES ('',?,'',?,?,?, CURRENT_TIMESTAMP,?,?,?,State,Suburb)"); 

if ($stmt === false) { 
trigger_error('Statement failed! ' . htmlspecialchars(mysqli_error($conn)), E_USER_ERROR); 
} 

$bind = mysqli_stmt_bind_param($stmt, 'issdsssss', $UID, $ItemName, $ItemDesc, $Amount, $ItemCond, $Postage, $Returns); 

if ($bind === false) { 
trigger_error('Bind param failed!', E_USER_ERROR); 
} 

$exec = mysqli_stmt_execute($stmt); 

if ($exec === false) { 
trigger_error('Statement execute failed! ' . htmlspecialchars(mysqli_stmt_error($stmt)), E_USER_ERROR); 
} 


if ($stmt == false) { 
    $response = "Sorry something went wrong. : "; 
    print_r($response); 
    print_r($stmt->mysqli_error); 
    print_r($stmt->error); 
    return; 

} else { 
    $response = "Sale Created."; 
    print_r($response); 
} 
+0

嗯,SQL語句是無效的,所以... –

回答

0

這不是INSERT SELECT的正確語法。 See the documentation

試試這個:

$stmt = mysqli_prepare($conn, "INSERT INTO sellingitems (ItemID, UserID, CatID, ItemName, ItemDesc, ItemAmount, TimeFrame, ItemCond, Postage, Returns, SaleState, SaleSuburb) 
    SELECT '',?,'',?,?,?, NOW(),?,?,?,State,Suburb FROM user WHERE UserID = '$UID'"); 

更好的仍然是兩個獨立的語句,如以下:

$result = mysqli_query($conn, "SELECT State, Suburb FROM user WHERE UserID = '$UID'"); 
$row = mysqli_fetch_array($result, MYSQLI_ASSOC); 

$stmt = mysqli_prepare(
    $conn, 
    "INSERT INTO sellingitems (
     ItemID, 
     UserID, 
     CatID, 
     ItemName, 
     ItemDesc, 
     ItemAmount, 
     TimeFrame, 
     ItemCond, 
     Postage, 
     Returns, 
     SaleState, 
     SaleSuburb) 
    VALUES 
    ('', ?, '', ?, ?, ?, NOW(), ?, ?, ?, '{$row['State']}', '{$row['Suburb']}')" 
); 
+0

非常感謝你,你的第二個選擇就像一個魅力! – Dougio

+0

第一個選項也適用於:-),再次感謝! – Dougio

+0

我想upvote和作出回答,但它說我需要15個更多的聲望點:-(對不起dlporter98 – Dougio

相關問題