2014-07-11 234 views
0

我試圖創建一個包含select查詢的插入查詢。問題在於它似乎不起作用,但它們分開工作。在插入查詢中選擇查詢

選擇查詢從數字表中選擇最高的數字,然後它需要添加1。 $變量是從PHP。

我在做什麼錯了?

INSERT INTO numbers (number, storeID, udid) 
VALUES (
    (SELECT number 
    FROM numbers 
    WHERE storeid = '$var' AND DATE(timestamp) = CURDATE() 
    ORDER BY number DESC LIMIT 1 
    ) + 1, $var, $udid) 
+0

顯示更多的代碼。 PHP變量不會內插。 – marekful

+1

嘿,顯示更多代碼!你在MySQL控制檯中運行這個嗎?我懷疑。因此,顯示代碼的環境 - >> PHP – marekful

+0

重複[MySql插入選擇的結果](http://stackoverflow.com/questions/4472929/mysql-insert-the-results-of-a-select )。此外,您的查詢看起來像可能容易受到SQL注入攻擊,您應該使用參數化查詢。 –

回答

0

用戶可以創建一個變量存儲所述增加的值第一

$results = mysqli_query($con, "Select number FROM numbers where storeid= '$var' AND DATE(timestamp) = CURDATE() Order by number DESC LIMIT 1"); 
if ($row = mysqli_fetch_array($results)) 
{ 
    extract($row); 
    $incremented_value = $row['number'] + 1; 
} 

然後,列的數目必須是相同的

INSERT INTO numbers (number, storeID, udid) 
VALUES 
($incremented_value, $var, $udid) 
+2

數字匹配... – Zim84