2011-05-16 2 views
2

이미지 이름이 recordID (더하기 '.png')와 같은 새 행을 만들려고합니다. recordID는 자동 증가 된 int입니다.자동 증분 int 가져 오기 및 다른 열에 삽입

이 새로운 기록한다 :

mysql_query("INSERT INTO record (name,age) VALUES ('$name','$age'')"); 

.. 그리고 이것은 recordID와 가져옵니다

$newRecordID = mysql_insert_id(); 

하지만 방법은 여기서 image_name 컬럼에 recordID와의 가치를 고수 할을 (플러스 '.png를') 다시 검색 할 필요없이?

답변

2

당신은 모든 이미지에 '.PNG'을 고수 할 필요가 없습니다, 당신의 논리는 각 레코드 확장 PNG와 이미지에 대한 정보를 포함하고 있음을 의미한다. 왜 이미지 이름을 저장하기 위해 다른 컬럼이 필요한 것일까 요?

두 번째 부분은 열 이름에 예약어를 사용하고 있다는 것입니다. 키워드 NAME은 예약되어 있으므로 항상 피해야합니다.

+0

네가 맞아. 나는 정말로 그것을 단지 부울로 만들어야한다 - 'hasImage'... btw, 나는 $ name을 예제로 사용했다. – cannyboy

0

최고의 MySQL은 시퀀스 조작 기능을 제공하지 않는다는 것을 알고 있습니다. 그렇게 할 수는 없습니다.

가장 좋은 방법은 저장 프로 시저에서 랩핑하여 서버로의 왕복을 방지하는 것입니다.

0

아마 여기에 뭔가를해야만 누락 메신저하지만

mysql_query("INSERT INTO image (name,id) VALUES ("$newRecordID".'.png','$newRecordID')"); 
+0

누락되었습니다 : '$ newRecordID'가 삽입 중에 생성됩니다. 그는 insert를 수행하는 동안 그것에 접근하고 싶지만, MySQL은 시퀀스를위한 currval() 함수를 제공하지 않기 때문에 불가능하다. auto_increment만이 그렇다. –

+0

@ denis 감사합니다. – Rob