使用pdo,使用pdo無法插入數據怎么辦


如果你使用了最新版的XAMPP,那么你幾乎不用改變php.ini的設置,就可以使用pdo

but,插了一晚上,程序既不報錯也不插入數據,真是氣死人,后來發現是實例化pdo對象的時候沒有指定字符集。所以一定設定字符集屬性,否則極有可能插入數據失敗

  • 一個插入多條數據的例子(用到了事務)
<?php $dbtype = 'mysql'; $dbname = 'olddream'; $user = "root"; $pwd = "wenwajiao"; $ip='127.0.0.1'; $fuckingcharset = 'utf8'; $dsn = "$dbtype:host=$ip;dbname=$dbname;charset=$fuckingcharset"; $pdo = new PDO($dsn,$user,$pwd); $rows = $pdo->prepare("select userid,username from userlist"); $rows->execute(); $pdo->beginTransaction(); $ret = $rows->fetchAll(); //update rbac_user set mypass = ? where userid = ?
for($i=0;$i<count($ret);$i++) { $sql = "insert into rbac_user (userid,username,mypass) values (?,?,?)"; $statement=$pdo->prepare($sql); $statement->bindValue(1,$ret[$i]['userid']); $statement->bindValue(2,$ret[$i]['username']); $statement->bindValue(3,md5($ret[$i]['userid'])); $statement->execute(); } $pdo->commit(); $pdo=null;
  •  插入一條數據
<?php $dbtype='mysql'; $db = 'olddream'; $ip='127.0.0.1'; $user='root'; $pwd = 'wenwajiao'; $charset = 'utf8'; $dsn = "$dbtype:host=$ip;dbname=$db;charset=$charset"; $pdo=new PDO($dsn,$user,$pwd); $sql = "insert into rbac_user (userid,username,mypass) values (?,?,?)"; $statement=$pdo->prepare($sql); $userid = 'masterzhang'; $username = '張教練'; $pwd = md5('masterzhang'); $statement->bindValue(1,$userid,PDO::PARAM_STR); $statement->bindvalue(2,$username,PDO::PARAM_STR); $statement->bindvalue(3,$pwd,PDO::PARAM_STR); $statement->execute(); ?>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM