PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

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

原创
2016-06-23 14:20:46 705浏览

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\''));

这样试一下看看

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

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。