2017-01-02 4 views
1

나는 무슨 일이 벌어지고 있는지 전혀 모른다.Prestashop에서 표 search_index에 삽입하지 못했습니다.

$sql = 'INSERT INTO ps_search_index (id_product,id_word,weight) 
     VALUES ('.$id_product.','.$getID.',9)'; 
Db::getInstance()->Execute($sql); 

$id_product이있는 경우 작동하지 않습니다 :

나는이 같은 테이블 ps_search_indexINSERT을 시도하고있다.

하지만 그 작업은 내가 예를 쓸 때. id_product은 물론 INT이고이 장소의 다른 값은 작동합니다.

물론 다른 오류는 없습니다. 어떻게해야합니까?

+0

'$ id_product'가 제대로 설정되지 않았다는 것을 상상할 수 있습니까? 만약 당신이'var_dump ($ id_product); – defuzed

+0

예. 예. 1340, 다른 컬럼에 대해 완벽하게 작동합니다. – Szmerd

답변

1

나는이 사용하는 튜토리얼을 완료했습니다.

데이터베이스 테이블의 기본 키가 고유해야하므로 쿼리에 추가 할 조합이 이미 테이블에 있어야하므로 쿼리가 실패합니다. 이 문제를 해결하기 위해 새 행을 삽입하기 전에 검사를 적용 할 수 있습니다.

1

이 시도 :

Db::getInstance()->execute(' 
    INSERT INTO '._DB_PREFIX_.'search_index (id_product, id_word, weight) 
    VALUES ('.(int)$id_product.', '.(int)$getID.', 9) 
    ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight)', false 
); 

난 항상 var에 캐스팅하는 것이 좋습니다. 이 경우 Search 클래스에 do가있는 것처럼 ON DUPLICATE...을 추가해야합니다. 테이블의 기본 키 http://blog.belvg.com/developer-tips-how-prestashop-search-works.html

+0

작동하지 않습니다. ps_search_word 만 훌륭하게 업데이트하지만 _index는 없습니다 – Szmerd

1

PrestaShop 버전, id_productid_word의 조합의 ps_search_index 데이터베이스 테이블에서 :

관련 문제