简体   繁体   中英

Select data from database and update it PHP/PDO

I need to make a PHP code that gets data from server, updates it and echos that updated data to user. I am beginner with PHP so I have no idea how to do this. This is the code I have have now.

So how do I change the code to make it update data ?

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


?>

Try this. I think it is along the lines of what you are looking for:

$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!";
}

one idea is to create a different database connection file consisting of a pdo connection and reuse it in your application. on how to do that.

in database.php you can do it like

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

and everywhere you want to use the connection you can do

require_once 'Database.php';

and some of the sample CRUD (Create, Read, Update, Delete) using PDO are.

//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');  

you should also study about named and unnamed placeholders, to escape SQL injections etc. you can read more about PDO with a very easy to understand tutorial by nettuts here

hope this helps you.

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

?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM