gpt4 book ai didi

php - mysqli绑定(bind)参数错误

转载 作者:行者123 更新时间:2023-11-29 04:02:09 25 4
gpt4 key购买 nike

我的数据库里有两张表。当我执行下面的php脚本时,我得到了错误。我认为查询是正确的,但如何将参数绑定为错误的呢?

Display
+-------+------------+-------------+
| Index | DISPLAY_ID | Picture_ID |
+-------+------------+-------------+
| 1 | 12 | longblob |
+-------+------------+-------------+


Cards
+--------+------------+------------+-----------------+
| Card_ID| DISPLAY_ID | Card_Type | Card_name |
+--------+------------+------------+-----------------+
| | | | |
+--------+------------+---------=--+-----------------+

 <?php
$mysqli=mysqli_connect('localhost','root','','draftdb');
if (!$mysqli)
die("Can't connect to MySQL: ".mysqli_connect_error());


$stmt = $mysqli->prepare("SELECT cards.CARD_TYPE, display.PICTURE_ID
FROM cards
INNER JOIN display ON cards.DISPLAY_ID = display.DISPLAY_ID
WHERE display.DISPLAY_ID=? AND cards.CARD_TYPE =?" );


$displayid=11;
$cardtype='Mythic';

$stmt->bind_param("si", $displayid, $cardtype);
$stmt->execute();
$stmt->bind_result($image);
$stmt->fetch();
//header("Content-Type: image/jpeg");
echo $image;
?>

警告:mysqli_stmt::bind_result()::绑定变量的数目与中准备的语句中的字段数目不匹配
修复:如果您正在从数据库读取图片,请确保只在查询中返回blob数据。(从SELECT语句中删除cards.CARD_TYPE。)

最佳答案

尝试以下两种修复方法:
摆脱:if (!$mysqli->query($stmt)) { printf("Errormessage: %s\n", $mysqli->error); }
调用execute()时执行查询
您需要绑定两个参数,然后传递两个但只列出一个类型。将bind_param调用更改为:
$stmt->bind_param("si", $cardtype, $displayid); // s for string, i for int
编辑:尝试将代码更改为:

$stmt = $mysqli->prepare("SELECT cards.CARD_TYPE, display.PICTURE_ID 
FROM cards
INNER JOIN display ON cards.DISPLAY_ID = display.DISPLAY_ID
WHERE display.DISPLAY_ID=? AND cards.CARD_TYPE =?" );


$displayid=11;
$cardtype='Mythic';

$stmt->bind_param("is", $displayid, $cardtype);
$stmt->execute();

关于php - mysqli绑定(bind)参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11698496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com