php
  • mysql
  • get
  • sql-update
  • 2016-01-28 68 views -2 likes 
    -2

    更新查詢不GETPHP MySQL的具有更新查詢的麻煩

    $key = mysql_real_escape_string($_GET['key']) ; 
    $pass = mysql_real_escape_string(trim($_POST['pass'])) ; 
    
    $key1="UPDATE login SET pass = '" . $pass . "' WHERE 
                 (key_id = '" . $key . "')"; 
    

    變量傳遞這樣newpassword.php?key=5384f

    回聲$重點工作;變量不會產生任何結果?有什麼可能是錯的?

    由於某些原因,它正在更新除密鑰存在以外的所有其他密碼。

    +0

    嘗試在WHERE子句中刪除(),請不要使用'mysql_ *'函數在PHP 7中刪除它們! –

    +1

    基本調試:你是否嘗試'echo $ key1'來查看你生成的查詢是什麼樣的?永遠不要假設你的sql語法是正確的,或者查詢成功。 –

    +4

    請[停止使用'mysql_ *'函數](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)。 [這些擴展](http://php.net/manual/en/migration70.removed-exts-sapis.php)已在PHP 7中刪除。瞭解[編寫]​​(http://en.wikipedia.org/ wiki/Prepared_statement)語句[PDO](http://php.net/manual/en/pdo.prepared-statements.php)和[MySQLi](http://php.net/manual/en/mysqli.quickstart .prepared-statements.php)並考慮使用PDO,[這真的很簡單](http://jayblanchard.net/demystifying_php_pdo.html)。 –

    回答

    0

    這是一個愚蠢的錯誤,我想到了錯誤;我使用<?php echo $_SERVER['PHP_SELF']?>發佈到同一頁面。發佈到頁面後,我嘗試使用get檢索密鑰,然後試圖使用它運行更新查詢。這是不工作的後,URL將改變和關鍵將不復存在。

    解決方案是首先捕獲鍵值,然後將其作爲隱形文本項存儲到表單中,然後將其更新。

    相關問題