zoukankan      html  css  js  c++  java
  • 使用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();
    ?>
  • 相关阅读:
    数组对象---数据存储
    运行vue项目时,无法自动打开页面怎么办?
    数组扁平化
    数组去重
    CSS-----------text-transform
    CSS3-----width:max-content,min-content和fit_content属性
    可迭代对象
    bit和byte的 区别?
    前端常见跨域问题?
    HackerRank "Lucky Numbers"
  • 原文地址:https://www.cnblogs.com/saintdingspage/p/10807211.html
Copyright © 2011-2022 走看看