回答

收藏

MySQLi准备的插入语句失败

技术问答 技术问答 138 人阅读 | 0 人回复 | 2023-09-13

我正在更新我的PHPmysqli::而不是使用它,但是mysql_*我遇到了一个INSERT语句问题。我有以下声明:% s6 H# s+ u* w
$stmt = $link->prepare("INSERT INTO `table` (`a`, `b`, `c`) VALUES(?, ?, ?)");( B, F$ _/ x: u  f- q
$stmt->bind_param("sss", $a, $b, "0");( K; _3 `! G& [5 l* W
$stmt->execute();
: L; Z$ v* |% o( b' b6 z2 G我已经检查过了$stmt,这是一个正确的mysqli_stmt对象。它已经准备妥当,但是由于某种原因,该语句将无法执行。我刚从服务器收到500错误。
9 C; X$ L3 |7 `+ D我想念什么?, ]8 Z: d: t/ ?- S
编辑
2 w; z% m& W' q' P1 y$ ?我确定问题出在bind_param方法上。" G$ j8 o$ [4 L* L# I( m5 e
编辑27 h+ f* O) J# e0 v6 n  a
好的,所以PHP给我的错误是这样的:
3 B2 v1 r8 U( y$ O- [7 Y! t5 z! t0 i: n# g7 D1 W# a
致命错误:无法在…中通过引用传递参数4# D% C. X& |3 I# ~' Q
% C% N/ ?8 X$ o8 P
这指向bind_param的行: X; o+ A7 k0 v  y  X' U5 {
               
3 W( v! @, o+ o# T1 P7 k8 C( o2 T解决方案:, Z$ l6 _, \9 L* p4 @' x
                ! Y' U5 ?. x, l, F1 c
. U( V# ^, Q* h% @( {" ]

4 }) C" N( e( a+ @( p3 J                您不能将常量传递给bind_param。首先将值放在变量中:' U- P) y% X6 K2 `9 s
$status = "0";( ^0 |8 |' g& s
$stmt->bind_param("sss", $oid, $cid, $status);
" A# s3 x  F: ~/ i7 H5 k$stmt->execute();
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则