在尝试创建分页后,我注意到 PHP 的bindValue
在与 MySQL 一起使用时不起作用ORDER BY
或LIMIT
条款。
考虑到它可以在 MySQL 中的任何其他地方工作,这是非常奇怪的(至少就我所知)。例如,这完全正常:
SELECT * FROM table WHERE foo = ? AND bar = ?
然而,在尝试类似的事情时:
SELECT * FROM table ORDER BY date DESC LIMIT ?, ?
它将返回一个空对象。
这就是我执行查询的方式(请注意,这些都是简化的,我使用的功能都是class
的一部分):
// query function
function query($sql, $params){
if($query = $pdo->prepare($sql)){
$x = 1;
if(count($params)){
foreach($params as $param){
$query->bindValue($x, $param);
$x++;
}
}
if($query->execute()){
return $query->fetchAll(PDO::FETCH_OBJ);
} else {
return false;
}
}
}
// executing a query (this will return an empty object)
$query = query("SELECT * FROM table ORDER BY date DESC LIMIT ?, ?", array(0, 10));
var_dump($query);
似乎无法想出这一点,所以感谢所有的帮助,
干杯。
答案 0 :(得分:0)
你的Params将作为字符串包含在内。使用常量来告诉bindValue将值绑定为int。
for(int i=0; i<bits.length()-1; i++){
k = i+1;
while((bits.charAt(k)==bits.charAt(i)) && k<bits.length() ) {
counter++;
k++;
}
if(bits.charAt(i)=='1'&& counter % 3==0)
morseCode.append('-');
else if(bits.charAt(i)=='1')
morseCode.append('.');
counter = 1;
}