PHP5 sqli bind_param问题与绑定布尔值

6 php mysqli boolean prepared-statement

我在PHP5中使用mysqli_stmt :: bind_param绑定布尔值时遇到问题.

SQL查询如下:insert into nvp_notes(subject,messageid,receivedate,read)值(?,?,?,?)

'read'是一个tinyint,0或1,因为我有使用mysqli的位问题.所以我在bind_param中列出的类型是:

$stmt->bind_param('sdsd', ...);
Run Code Online (Sandbox Code Playgroud)

我也试过'sdsb'和'sdss'但似乎没什么用,我总是得到这样的信息:

Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement
Run Code Online (Sandbox Code Playgroud)

当我删除语句中的读取字段时,一切正常.我已经用完了这个想法.肯定bind_param适用于布尔?

Jer*_*ten 10

您可以使用intval()将布尔值转换为1或0 (或使用(int)(整数)转换它).根据mysqli_stmt :: bind_param()的文档,您可以绑定的唯一类型是整数,双精度数,字符串和blob.