2011-11-04 3 views
0

행의 자동 증가 열을 가져 오려고합니다. 코드는 설명 할 것이지만 기본적으로 orders라는 테이블에 행을 삽입하려고합니다. 그리고 자동 증가 된 숫자를 얻고 싶습니다. 이것은 제 PHP입니다. 내가 정말로 원하는 모든 자동차 번호를 에코되고이 단계에서 mysql_insert_id와 나의 불황?

<?php 

$db = DBConnection::connect(); 

$q = "INSERT INTO orders (customerid, orderdate) VALUES (".$customerid.", CURRENT_TIMESTAMP)"; 

$ps = $db->prepare($q);  
$ps->execute(); 
$db = null; 

echo mysql_insert_id(); 
?> 


.

이 어떤 도움을 크게 감상 할 수 내 구조
CREATE TABLE `orders` (
    `orderid` int(25) NOT NULL AUTO_INCREMENT, 
    `customerid` int(11) NOT NULL, 
    `orderdate` date DEFAULT NULL, 
    PRIMARY KEY (`orderid`), 
    KEY `orderid` (`orderid`) 
) 


, 감사합니다 :)

+0

문제가 무엇인지 설명을 추가하십시오. 잘못된 ID를 출력합니까? 오류가 있습니까? –

+0

무엇이 오류입니까? –

+0

나는 오류가없는 것 같습니다. 나는 다음을 시도했다 : // public function checkout ($ customerid) { // $ con = mysql_connect ("localhost", "root", "root"); // $ selectdb = mysql_select_db ("camelio", $ con); \t //는 mysql_query ($ CustomerID를 "주문 (CustomerID를, 주문일) 가치 (INTO INSERT" "CURRENT_TIMESTAMP"); // 에코 "마지막으로 삽입 한 레코드가 ID가 있습니다.".에 mysql_insert_id(); \t \t. //} 내 문제는 출력이 대신 증가 된 숫자, 0을 준다이다 그래서 나는 이런 식으로 뭔가를 사용한다 – Elliot

답변

1

PDO는 mysql_* 기능에서 차이가 발생하는 모든 오류를 표시 할 수 있습니다 추가.

당신이 PDO를 사용했습니다 때문에, 당신은 PDO 개체에서 방법 lastInsertId()를 사용해야합니다

$db->lastInsertId(); 
+0

--- ' $ dB = DBConnection ::) (연결;.? $ q = "INSERT INTO 주문 (고객 ID, 주문 날짜) VALUES (". $ 고객 ID. ", CURRENT_TIMESTAMP)"; $ ps = $ db-> prepare ($ q); $ ps-> execute(); $ db-> lastInsertId(); 인쇄 $ db; $ db = null; ' --- – Elliot

+0

$ ps-> execute() 후에 $ last = $ db-> lastInsertId();를 사용해야합니다. print $ last; – fonini

+0

당신의 멋진. 정말 고마워요 !! – Elliot

3

DBConnection! = MySQL의

당신은 기능을 사용할 수 없습니다를 그런 다른 도서관에서. 이어야하며 mysql_num_rows()DBConnection과 같거나 DBConnectionmysql_*으로 변경해야합니다.

-1

시도

$ps->execute() 
or die(mysql_error()); 

이 데이터베이스 쿼리