mysqli bind değişkenleri

2 Cevap php

Ben bu kısmi kod var:

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);

Aksi takdirde Tamam çalıştığı, ancak ben bir hata alıyorum:

Bind değişkenleri sayısı hazır açıklamada alanların sayısı eşleşmiyor

Son satırda ben yayınlanmıştır.

Ben sorunun ne olduğundan emin değilim. Ben ayrı bazı sütunları, örneğin ARTICLE_DESC kullanmak istiyorum. Bu select * kullanamayacağınız anlamına gelmez, ve sorguda sütun adlarının her koymak gerekir?

edit: o bağlamak için gerekli olan? Orada güvenlik ya da performans avantajları elde edilecek? Ben sadece de olmadan yapabilir miyiz?

2 Cevap

Gerçekten ziyade * kullanarak sütunların isimlerini ayar olmalı.

Bu şekilde, bind_result yönteme geçmek için tam olarak hangi sütunların bilecek.

Eğer sonuç bağlayıcı iseniz, sizin SQL sorgusu bir joker ile bu yapmamalıyız. Bir sütun bağlayıcıdır tablodan eklendi veya çıkarıldı ne olacağını düşünün.