2013-02-26 3 views
0

내가 업데이트 할 울부 짖는 소리 쿼리를 사용하고 있지만, 지금은 PDO로 변경 시도하고 어떤 도움이 여기에mysql에서 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(); 
} 

} 

?> 
+2

게시글 ... – Eggplant

+1

멍크가있다 : http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers – Nick

+0

이 스레드는'sql injection'에 대해 이야기하지만 준비된 문을 사용하는 방법을 보여 주며 그 중 하나는 PDO, [SQL injection을 방지하는 방법 PHP에서?] (http://stackoverflow.com/questions/60174/how-to-prevent-sql-injection-in-php) –

답변

3
$stmt = $db->prepare("UPDATE site_user SET dateupdated=now(), ip=? WHERE username=?"); 
$stmt->execute(array($ip, $_SESSION['username'])); 
$affected_rows = $stmt->rowCount(); 

입니다 (var_dump($_SESSION) 충분하다)

다시 : A great tutorial

+0

위대한 Mr Nick 좋은 일꾼 나는 정말로 감사한다 – humphrey

+0

문제 없음 , 행운을 빈다. PDO를 배우려는 노력에 가치가 있다고 생각한다. 그 튜토리얼은 많은 도움이됩니다. – Nick

5
// 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']); 
+0

당신은 남자 고마워하는 사람 – humphrey

5

첫째, 부트 스트랩/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'])); 
    } 
} 

당신이 사용하고있는 모든 변수가 올바른 값이 있는지 확인 쿼리 실행 $db는 연결이

+0

당신은 정말로 내가 항상 나를 도와주는 훌륭한 사람 – humphrey

2
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(); 
    } 
} 
+0

감사하는 많은 우리는 u와 같은 사람을 필요로한다 – humphrey

관련 문제