php pdo连接mysql问题,请大家帮帮忙~~

php主程序代码:PHP code

<?php
include 'class/data/OpenDataBase.php';
class ProcessId {
    const Client=0;
    const SubCenter=1;
    const  Console=2;    
}
class KVTokens
{
    
    public static function Add($ProcessId){
        try {
        $db=new OpenDataBase();
        $db=$db->Open() or die("打开数据库失败");
        session_start();
        $sessionId=session_id();
        $_SESSION['time']=time();
        $sql="INSERT INTO kv_tokens (TokenID,ProcessID,Ctime)VALUES($sessionId,$ProcessId,date(\"Y-m-d\"))";
        $count=$db->exec($sql);
        }catch (PDOException $e){
        
        }
        return $sessionId;
        
    }
    
}
var_dump(KVTokens::Add(2));
?>

这是我写的OpenDataBase类:
PHP code
class OpenDataBase
{
    
    public function Open(){
        
        $dbh="mysql:host=localhost;dbname=kvnet";
        $db=new PDO($dbh,'root','root');
        $db->query("set character set 'utf-8'");
        return $db;
        
    }
    
}


以上代码对数据库的操作一直无效,也就是没法添加进数据
请大家帮帮我 这到底是怎么回事啊
现在运行也没有报错 ,但是为什么就是不能添加数据呢 ?

作者: MMDD0827   发布时间: 2011-04-24

<?php
error_reporting(E_ALL);
session_start();
include 'class/data/OpenDataBase.php';
class ProcessId {
  const Client=0;
  const SubCenter=1;
  const Console=2;  
}
class KVTokens
{
   
  public static function Add($ProcessId){
  try {
  $db=new OpenDataBase();
  $db=$db->Open() or die("打开数据库失败");
  $sessionId=session_id();
  $_SESSION['time']=time();
  $sql="INSERT INTO kv_tokens (TokenID,ProcessID,Ctime)VALUES($sessionId,$ProcessId,date(\"Y-m-d\"))";
  $count=$db->exec($sql);
  if($db->errorcode()!='00000')
{
print_r($db->errorinfo()); //如果在执行SQL时错误打印错误信息!
}
  }catch (PDOException $e){
echo "Error:".$e->getmessage(); //加错误提示!
  }
  return $sessionId;
   
  }
   
}
var_dump(KVTokens::Add(2));
?>
有改动红体,看着情况修改,自己适当增减语句,调试到合适的结果,反正测试不花钱,多试几次自己也能多学东西。对吧!

作者: falizixun2   发布时间: 2011-04-24

或者你也可以把这句
$count=$db->exec($sql);
  if($db->errorcode()!='00000')
{
print_r($db->errorinfo()); //如果在执行SQL时错误打印错误信息!
}
改为:
  $db->query($sql2);//改为query执行方式,虽然书上规定query适合查询,但是插入也可以 !
if($db->errorcode()!='00000')

print_r($db->errorinfo());

}

作者: falizixun2   发布时间: 2011-04-24