gpt4 book ai didi

PHP PDO - bindValue PARAM_BOOL 作为字符串

转载 作者:行者123 更新时间:2023-11-29 08:56:00 31 4
gpt4 key购买 nike

我吓坏了,不知道出了什么问题。我对 PDO 还很陌生,但是除了作为字符串发送的 bool 值之外,所有内容都可以在我的代码中运行。

我的代码(简化):

$sql = 'SELECT * FROM pages WHERE clean_url_slo = :clean_url_slo AND published = :published LIMIT 1';

$clean_url_slo = 'home';
$published = true;

然后我准备东西并像这样执行(简化):

$stmt = $db->prepare($sql);
$stmt->bindValue(':clean_url_slo',$clean_url_slo,PDO::PARAM_STR);
$stmt->bindValue(':published',$published,PDO::PARAM_BOOL);
$stmt->execute();

然后这是 mysql 的内容(来自 mysql 日志 - mysql 收到的查询):

91 Query    SELECT * FROM pages WHERE 1=1 AND clean_url_slo='domov' AND published='1' ORDER BY id desc LIMIT 1

如您所见,published 是一个整数 - 因此始终为 true,这是不行的。如果我将其声明为 bool 值,为什么会这样?

使用:

WAMP服务器PHP版本:5.3.9Mysql:5.5.20

非常感谢您的帮助..

最佳答案

MySQL 并没有真正的 bool 数据类型,BOOLEAN 关键字只是 TINYINT(1) 的别名。
您必须确保它有一个数字,其中 1 = true,0 = false。检查MySQL Data Types

关于PHP PDO - bindValue PARAM_BOOL 作为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9969242/

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