php的mysql_查询函数不支持类似Statement的功能?
我问:php的mysql_查询函数不支持类似Statement的功能?,php,mysql,Php,Mysql,我问: select * from marrydays where YMD_X like '2010-1-%' and marrydays.CONG not like 'aa%' and marrydays.CONG not like 'bb%' ; 但是使用mysql_fetch_object函数后,没有得到准确的结果,结果跟我查询的一样: select * from marrydays where YMD_X like '2010-1-%' ; 为什么? 一些代
select *
from marrydays
where YMD_X like '2010-1-%'
and marrydays.CONG not like 'aa%'
and marrydays.CONG not like 'bb%' ;
但是使用mysql_fetch_object函数后,没有得到准确的结果,结果跟我查询的一样:
select * from marrydays where YMD_X like '2010-1-%' ;
为什么?
一些代码片段:
$res1=$db->findselect*从YMD_X喜欢的marrydays开始$cnDate.%'和丛不喜欢'冲.$男"舒",
公共函数find$sql,$key=null{
$data=数组;
$result=$this->query$sql;
而$row=mysql\u fetch\u object$result{
如果!空$key{
$data[$row->{$key}]=$row;
}否则{
$data[]=$row;
}
}
返回$data;
}
由于PHP的mysql_查询函数只是在编写时将内容传递给mysql,您确定直接在mysql上运行相同的查询会得到不同的结果吗
这里的问题几乎肯定在于您的查询。在CONG之前不需要表名,特别是因为您在YMD_X之前没有使用它。是的,我确定。Y尝试在Navicat for MySQL上向查询分析器查询相同的SQL语句。@Catwin:首先,编辑您的问题以添加其他信息。这不是你发布的答案。第二,在使用mysql\u查询时,不要用分号终止查询;它可以处理所有这些。第三,这里有非盎格鲁-撒克逊人的角色。你不觉得这很重要吗?确保您的MySQL字符集和排序规则设置在PHP中与用于测试的命令行中的设置相同。最后,您确定该发现符合您的要求吗?如前所述,在以下情况下,它将只返回一行!空$key.对不起,我是新来的!关于这个问题,我确信:1.字符编码是正确的。2.我只是用分号来终止整个查询。3.功能完善,工作正常。当我查询SQL语句时,返回的结果只匹配一个like,一个not-like。最后一个not-like语句似乎没有用。
public function query($sql){
$stime = microtime(true);
$result = mysql_query($sql, $this->conn);
$this->query_count ++;
if($result === false){
throw new Exception(mysql_error($this->conn)." in SQL: $sql");
}
$etime = microtime(true);
$time = number_format(($etime - $stime) * 1000, 2);
$this->query_list[] = $time . ' ' . $sql;
return $result;
}