欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-13 14:22:57
...
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\''));

这样试一下看看

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