> 백엔드 개발 > PHP 튜토리얼 > php mysql pdo连接数据库,无法操作数据库,无法读取数据。跪求解答。。

php mysql pdo连接数据库,无法操作数据库,无法读取数据。跪求解答。。

WBOY
풀어 주다: 2016-06-23 14:20:46
원래의
972명이 탐색했습니다.

pdo mysql


try{
$votePDO = new PDO("mysql:host=127.0.0.1;dbname=legou", 'root', '2sinilei.',array( PDO::ATTR_PERSISTENT => true));
//$votePDO = new PDO();
//$pdoconn ->setAttribute(PDO::ATTR_PERSISTENT,true);
echo "success
";
}
catch(PDOException $e) {
echo $e->getMessage();
}

$result=$votePDO->query("select * from uz_types");
        var_dump($result);
$votePDO->query("insert into uz_types (TypeName)values('啊啊啊')");
echo "count=".$count."
";
//$result->setFetchMode(PDO::FETCH_ASSOC);
print_r($result);
if(empty($result))
{
echo "null";

}else
{
echo "have".count($result)."datas";
}
echo count($result);
foreach($result as $k=>$v)
{
echo $v['TypeName'];

};
?>



//这里是页面输出的结果

success
bool(false) count=
null1

//
php.ini 已经配置好了啊。
没有报错 说明链接上了吧 但是为什么会是这个输出呢?
求解求解啊~

回复讨论(解决方案)

 var_dump($result);
$arr = $votePDO->errorInfo();
print_r($arr);  //贴出这个结果看看

Array ( [0] => S1000 [1] => 0 [2] => Unknown initial character set index '45' received from server. Initial client character set can be forced via the 'characterEncoding' property. ) count=

编码错了??

打印出 success
表示 $votePDO = new PDO("mysql:host=127.0.0.1;dbname=lego... 执行正确

打印出 bool(false)
表示 $result=$votePDO->query("select * from uz_types"); 执行失败

打印出 count=
正常
echo "count=".$count."
"; 中 $count 并未赋值

既然 $result 为假
那么 if(empty($result)) 成立
打印出 null 就很正常了

打印出 success
表示 $votePDO = new PDO("mysql:host=127.0.0.1;dbname=lego... 执行正确

打印出 bool(false)
表示 $result=$votePDO->query("select * from uz_types"); 执行失败

打印出 count=
正常
echo "count=".$count."
"; 中 $count 并未赋值

既然 $result 为假
那么 if(empty($result)) 成立
打印出 null 就很正常了

那query为什么会失败 麻烦能解答下吗?

你的库,我怎么知道为什么失败
print_r($votePDO->errorInfo());
看看错误信息

你的库,我怎么知道为什么失败
print_r($votePDO->errorInfo());
看看错误信息

我在2楼贴了,麻烦看下。

 var_dump($result);
$arr = $votePDO->errorInfo();
print_r($arr);  //贴出这个结果看看

Array ( [0] => S1000 [1] => 0 [2] => Unknown initial character set index '45' received from server. Initial client character set can be forced via the 'characterEncoding' property. ) count=

$votePDO = new PDO("mysql:host=127.0.0.1;dbname=legou", 'root', '2sinilei.',array( PDO::ATTR_PERSISTENT => true,PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));

这样试一下看看

$votePDO = new PDO("mysql:host=127.0.0.1;dbname=legou", 'root', '2sinilei.',array( PDO::ATTR_PERSISTENT => true,PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));

这样试一下看看

可以读出来了,是编码问题 编码不统一就读不出数据.谢谢斑竹啦。

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿