3

サーバーからデータを取得して更新し、更新されたデータをユーザーにエコーする PHP コードを作成する必要があります。PHP初心者なのでやり方がわかりません。これは私が今持っているコードです。

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

<?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() .'}}'; 
}


?>
4

3 に答える 3

1

1 つのアイデアは、pdo 接続で構成される別のデータベース接続ファイルを作成し、それをアプリケーションで再利用することです。その方法について。

database.phpあなたのようにそれを行うことができます

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.
}

そして、あなたができる接続を使用したい場所ならどこでも

require_once 'Database.php';

また、PDO を使用したサンプル CRUD (作成、読み取り、更新、削除) の一部は次のとおりです。

//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 インジェクションなどを回避するために、名前付きおよび名前なしのプレースホルダーについても学習する必要があります。PDO の詳細については、nettuts による非常にわかりやすいチュートリアルを参照してください。

これがお役に立てば幸いです。

于 2012-04-17T12:22:37.120 に答える
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!";
}
于 2012-04-17T10:39:30.367 に答える
-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() .'}}';
}

?>
于 2012-04-17T12:03:07.290 に答える