【问题标题】:How to change an update query from mysql to pdo?如何将更新查询从 mysql 更改为 pdo?
【发布时间】:2013-02-26 15:41:43
【问题描述】:

我正在使用波纹管查询进行更新,但现在我尝试将其更改为 pdo,但无法正常工作 请任何帮助将不胜感激

 function updateonlinesession(){            
    if(isset($_SESSION['username']['id'])){
    $uid = $_SESSION['username']['id'];
    $page = $_SERVER['REQUEST_URI'];
    $ip = $_SERVER['REMOTE_ADDR'];
    $username = $_SESSION['logged'];

    mysql_query("UPDATE site_user SET dateupdated  = now(),ip = '$ip' WHERE 
    username = '".mysql_real_escape_string($_SESSION['username'])."'"); 
    }

    }   

这是我用 pdo 尝试过的

function updateonlinesession(){         
if(isset($_SESSION['username']['id'])){
$uid = $_SESSION['username']['id'];
$page = $_SERVER['REQUEST_URI'];
$ip = $_SERVER['REMOTE_ADDR'];
$username = $_SESSION['logged'];

$update = ("UPDATE site_user SET dateupdated  = now(),ip = '$ip' WHERE 
username = '".($_SESSION['username'])."'");
$sth_update= $con->prepare($update);
$sth_update->execute();
}

}

?>

【问题讨论】:

  • 发布您尝试过的内容...
  • 为什么在 OP 没有提供任何努力证明的情况下对此表示赞成?此外,还有大量涵盖该主题的文章/答案。在我看来就像give me the code
  • @HamZa DzCyber​​DeV 我把它检查一下,现在我在克里斯先生和茄子的要求下编辑了
  • @HamZa DzCyber​​DeV 我怀疑投票是为了希望这个问题获得一些可见性,并作为 PHP 新手开发人员的示例。任何可以阻止他们使用 mysql 扩展的东西!

标签: php mysql pdo


【解决方案1】:
// connetion
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);

// query
$sql = "UPDATE site_user SET dateupdated = NOW(), ip = ?
        WHERE username = ?";
$q = $conn->prepare($sql);
$q->execute(array($ip, $_SESSION['username']);

【讨论】:

    【解决方案2】:

    首先,在 bootstrap/config 文件中的某处连接:

    $dsn = 'mysql:dbname=test;host=localhost;charset=utf8';
    $opt = array(
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    );
    $pdo = new PDO($dsn, $user, $pass, $opt);
    

    然后,运行您的查询

    function updateonlinesession(){
        global $pdo;
        if(isset($_SESSION['username']['id'])){
            $sql = "UPDATE site_user SET dateupdated=now(),ip=? WHERE username=?"; 
            $pdo->prepare($sql);
            $pdo->execute(array($_SERVER['REMOTE_ADDR'], $_SESSION['logged']));
        }
    }
    

    确保您使用的所有变量都有正确的值(var_dump($_SESSION) 就足够了)

    【讨论】:

    • 你真的是个明星你总是帮助我伟人
    【解决方案3】:
    $stmt = $db->prepare("UPDATE site_user SET dateupdated=now(), ip=? WHERE username=?");
    $stmt->execute(array($ip, $_SESSION['username']));
    $affected_rows = $stmt->rowCount();
    

    $db 是您的联系人

    再次:A great tutorial

    【讨论】:

    • 没问题,祝你切换成功,相信我在学习 PDO 上付出的努力是值得的。那个教程很有帮助。
    【解决方案4】:
    function updateonlinesession(){
        if(isset($_SESSION['username']['id'])){
            $uid = $_SESSION['username']['id'];
            $page = $_SERVER['REQUEST_URI'];
            $ip = $_SERVER['REMOTE_ADDR'];
            $username = $_SESSION['logged'];
    
            //Establish your PDO object.
            $pdo = new PDO("mysql:host=localhost;dbname=mydb", "username", "password");
    
            //Prepare your statement.
            $stmt = $pdo->prepare("UPDATE site_user SET dateupdate = now(), ip = ? WHERE username = ?");
            $stmt->execute(array(
                $ip,
                $_SESSION['username']
            ));
            $stmt->closeCursor();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      • 1970-01-01
      • 1970-01-01
      • 2015-12-01
      相关资源
      最近更新 更多