質問

私はこの部分のコードを持っています:

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

それ以外の場合は[OK]を実行し、しかし、私はエラーを取得します:

バインド変数の数が、プリペアドステートメントのフィールド数と一致していません。

私は投稿の最後の行でます。

私は問題が何であるかわかりません。私は、例えばARTICLE_DESCを別々のいくつかの列を使用します。これは私は、select *を使用することはできませんし、クエリで列名のそれぞれに入れなければならないということですか?

編集:それはバインドする必要があるのでしょうか?獲得するセキュリティやパフォーマンスの利点があるのですか?私は、同様ずに行うことができますか?

役に立ちましたか?

解決

本当にあなたは*使っいうし、列の名前を設定する必要があります。

この方法で、あなたはbind_resultメソッドに渡すためにどの列を正確に知ることができます。

他のヒント

あなたは結果を結合している場合は、

、あなたは、SQLクエリでワイルドカードでこれをやってはいけません。列を追加またはあなたが結合されているテーブルから削除された場合に何が起こるかを考えてみます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top