문제

이 부분 코드가 있습니다.

if ($getRecords = $con->prepare("SELECT * FROM AUCTIONS WHERE ARTICLE_NO = ?"))

{

$getHtml = $con->prepare("SELECT ARTICLE_DESC FROM AUCTIONS WHERE ARTICLE_NO = ?");

$getHtml->bind_param("i", $pk);

$getHtml->execute();

$getHtml->bind_result($ARTICLE_DESC);



$getRecords->bind_param("i", $pk); 

$getRecords->execute(); 

$getRecords->bind_result($ARTICLE_NO, $ARTICLE_NAME, $SUBTITLE, $CURRENT_BID, $START_PRICE, $BID_COUNT, $QUANT_TOTAL, $QUANT_SOLD, $ACCESSSTARTS, $ACCESSENDS, $ACCESSORIGIN_END, $USERNAME, $BEST_BIDDER_ID, $FINISHED, $WATCH, $BUYITNOW_PRICE, $PIC_URL, $PRIVATE_AUCTION, $AUCTION_TYPE, $ACCESSINSERT_DATE, $ACCESSUPDATE_DATE, $CAT_DESC, $CAT_PATH, $COUNTRYCODE, $LOCATION, $CONDITIONS, $REVISED, $PAYPAL_ACCEPT, $PRE_TERMINATED, $SHIPPING_TO, $FEE_INSERTION, $FEE_FINAL, $FEE_LISTING, $PIC_XXL, $PIC_DIASHOW, $PIC_COUNT, $ITEM_SITE_ID);

그렇지 않으면 괜찮지 만 오류가 발생합니다.

바인드 변수 수는 준비된 명령문에서 필드 수와 일치하지 않습니다.

마지막 줄에서 나는 게시했다.

문제가 무엇인지 잘 모르겠습니다. article_desc (예 : article_desc)의 일부 열을 사용하고 싶습니다. 이것은 select *를 사용할 수 없으며 쿼리의 각 열 이름을 넣어야한다는 것을 의미합니까?

편집 : 바인딩해야합니까? 보안 또는 성능 장점이 있습니까? 내가 없이도 마찬가지로 할 수 있습니까?

도움이 되었습니까?

해결책

실제로 *를 사용한 후 열의 이름을 설정해야합니다.

이런 식으로, 당신은 어떤 열을 bind_result 메소드로 전달 해야하는지 정확히 알 수 있습니다.

다른 팁

바인딩 결과 인 경우 SQL 쿼리의 와일드 카드 로이 작업을 수행해서는 안됩니다. 묶는 테이블에서 열이 추가되거나 제거되면 어떻게 될지 생각해보십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top