2012-04-17 8 views
2

サーバからデータを取得し、更新し、更新したデータをユーザにエコーするPHPコードを作成する必要があります。私はPHPで初心者なので、どうやってこれを行うのか分かりません。これは今私が持っているコードです。データベースからデータを選択してPHP/PDOを更新する

コードを変更してデータを更新するにはどうすればよいですか?

<?php 
include 'config.php'; 

$ID = $_GET['ID'] ; 

$sql = "select * from table where ID = \"$ID\" and condition = false "; 
// This is what I need the table to be updated "Update table where where ID = \"$ID\" set condition = true" ; 

try { 
    $dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); 
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $stmt = $dbh->query($sql); 
    $data = $stmt->fetchAll(PDO::FETCH_OBJ); 
    $dbh = null; 
    echo '{"key":'. json_encode($data) .'}'; 
} catch(PDOException $e) { 
    echo '{"error":{"text":'. $e->getMessage() .'}}'; 
} 


?> 
+0

選択または更新しますか?あなたのSQLクエリはselectです。 –

+0

データを選択して更新したい。更新クエリはコメントにありますが、どこにどのように置くべきか分かりません。 – user1323294

+0

何を更新しますか?なぜあなたはdbを同じ値で更新しますか? – Bono

答えて

0

これを試してください。私はそれはあなたが探しているものの線に沿っていると思う:

$query = "select * from table where ID = \"$ID\" and condition = false "; 
$query_result = @mysql_query($query); 
$query_row = mysql_fetch_assoc($query_result); 
$update_query = "UPDATE table SET condition = true WHERE ID = {$row['ID']};"; 
if(@mysql_query($update_query)) { 
    echo "Update succeeded!"; 
} else { 
    echo "Update failed!"; 
} 
+0

私は、更新されたクエリをjson_encodeする必要があります。どうやってやるの? – user1323294

+0

なぜ@でエラーを押さえているのですか?おそらく悪い考え-1 –

+0

と彼は彼がPDOを使用しているのを見ることができません。あなたは彼に間違った方向を示している –

-1
<?php 

$ID  = 1; 

try { 
     $db = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); 
     $select_statement = $db->prepare('select * from table1 where id = :id and `condition` = false'); 
     $update_statement = $db->prepare('update table1 set `condition` = true where id = :id'); 
     $select_statement->execute(array(':id' => $ID)); 
     $results = $select_statement->fetchAll(); 
     $update_statement->execute(array(':id' => $ID)); 
     echo '{"key":' . json_encode($results) .'}'; 

} catch(PDOException $e) { 
    echo '{"error":{"text":'. $e->getMessage() .'}}'; 
} 

?> 
0

1アイデアはPDO接続からなる異なるデータベース接続ファイルを作成し、アプリケーションで再利用することです。それを行う方法について。

database.phpにあなたが

require_once 'Database.php';

とサンプルCRUD(作成、読み取り、更新の一部を行うことができますどこに接続を使用したい

try { 
    $dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); 
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} catch(PDOException $e) { 
    //catch the exception here and do whatever you like to. 
} 

と同じようにそれを行うことができます、Delete)があります。

//Create or Insert 
$sth = $dbh->prepare("INSERT INTO folks (first_name) values ('Cathy')"); 
$sth->execute(); 
//Read or Select 
$sth = $dbh->query('SELECT name, addr, city from folks'); 
//Update 
$sth = $dbh->prepare("UPDATE tablename SET col = val WHERE key = :value"); 
$sth->bindParam(':value', $value); 
$sth->execute(); 
//Delete 
$dbh->query('DELETE FROM folks WHERE id = 1'); 

あなたはまた、などのSQLインジェクションを逃れるために、名前を付けて、名前のプレースホルダについて勉強する必要がありますがnettuts here

でチュートリアルを理解することは非常に簡単でPDOについての詳細を読むことができ、これは役立ちます願っています。

関連する問題