Heim >Backend-Entwicklung >PHP-Tutorial >php mysql pdo连接数据库,无法操作数据库,无法读取数据。跪求解答。。

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

WBOY
WBOYOriginal
2016-06-23 14:20:46959Durchsuche

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

这样试一下看看

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn