2017-08-11 10 views
0

私は前のページからIDを取得するページを持っています。 今、私はそのid.butに基づいてテーブルを更新したいと思っています。現在、2つのSQLクエリを使用しています.iは、両方のクエリを結合して1つのクエリを作成します。 ここに私のコードです。getedのIDからmysqlを選択し、増分操作を実行します

$id = $_GET['id']; 

//GET DETAILS 
$sql = $conn->query("SELECT clicks FROM banners WHERE id = '".$_GET['id']."'")->fetch_object(); 
$lastClick = $sql->clicks; 
$newClick = $lastClick + 1; 

$insertt = "UPDATE banners SET clicks='$newClick' WHERE id = ".$_GET['id'].""; 
$insert = $conn->query($insertt); 
if($insert){ 
    echo "Redirecting to you At. ".$sql->link; 
}else{ 
    echo $insertt; 
} 

したがって、2つのクエリを組み合わせることは可能です。 ありがとうございました。

答えて

0

更新クエリ自体で列の値を増やすことができます。

$sql = "UPDATE banners SET clicks = clicks + 1 WHERE id = '".$_GET['id']."'"; 

また、あなたは何ができるか

mysqli_real_escape_string($conn, $_GET['id']); 
1

(あなたがmysqliを使用していると仮定して)クエリで、その値を使用する前にそれをエスケープすることにより$_GET['id']をサニタイズは非常に簡単です:)

UPDATE banners SET clicks= clicks+1 WHERE id = ".$_GET['id']."

しかし、SQL要求を実行するときは連結を使用しないでください。代わりにバインディングを使用してください(SQLインジェクションを避けるため):

$sql = $conn->prepare("UPDATE banners SET clicks= clicks+1 WHERE id = :id"); 
$sql->bindParam(':id', $_GET['id'], PDO::PARAM_INT); 
$sql->execute(); 
関連する問題