我有这样的部分码:

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。这是否意味着我不能使用select *,并且必须把每个列名的查询?

编辑:是有必要结合?在那里可以得到的安全性或性能优势?可我只是以及不办?

有帮助吗?

解决方案

真的,你应该设置列的名称而不是使用*。

此方式,你将确切地知道要传递给bind_result方法的列。

其他提示

如果您有约束力的结果,你不应该在你的SQL查询通配符这样做。想想如果加入或你要绑定表中删除的列会发生什么。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top