2013-06-05 166 views
0

我覺得我現在真的很接近 - 沒有更多令人討厭的橙箱錯誤 - 我現在唯一可以看到的唯一問題是,一旦我更新表(在用PHP插入用戶更新到SQL

之後
$qry = "UPDATE 'members' ('employer', 'flat') WHERE login='$login_name' VALUES ". " ('$employ', $address')"; 

)我得到消息"No rows updated"回顯屏幕!

任何想法是什麼問題? 謝謝。

<?php 
    //Start session 
    session_start(); 
    $_SESSION['SESS_LOGIN']; 
    //Include database connection details 
    require_once('config.php'); 

//Array to store validation errors 
    $errmsg_arr = array(); 

    //Validation error flag 
    $errflag = false; 

    //Connect to mysql server 
    $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 
    if(!$link) { 
     die('Failed to connect to server: ' . mysql_error()); 
    } 

    //Select database 
    $db = mysql_select_db(DB_DATABASE); 
    if(!$db) { 
     die("Unable to select database"); 
    } 

    //Function to sanitize values received from the form. Prevents SQL injection 
    function clean($str) { 
     $str = @trim($str); 
     if(get_magic_quotes_gpc()) { 
      $str = stripslashes($str); 
     } 
     return mysql_real_escape_string($str); 
    } 

    //Sanitize the POST values 
    $employ = clean($_POST['employer']); 
    $address = clean($_POST['flat']); 



?> 



<?Php 
//Insert employer and address into database row for logged in user.  
$login_name = $_POST['login_name'] ; 
$qry = "UPDATE 'members' ('employer', 'flat') WHERE login='$login_name' VALUES ". "  ('$employ', $address')" ; 



    $result = @mysql_query($link, $qry); 
    //Check whether the query was successful or not 
    if(!$result) { 
     echo "No rows updated"; 
     exit(); 
    }else { 
     echo "Success"; 
    } 
?> 
+2

**對mysql_ *函數沒有更多的支持**,它們是[**正式棄用**](https://wiki.php .net/rfc/mysql_deprecation),**不再維護**,並將[**刪除**](http://php.net/manual/en/function.mysql-connect.php#warning)未來。您應該使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/msqli)更新您的代碼,以確保您的項目在未來的功能 – Schleis

+2

只需預先安裝,通過貶低mysql *函數的註釋,他可以自由使用他希望的任何功能。請不要發表重複的評論。 – imulsion

+1

@imulsion謝謝!這太讓人討厭了。誰在乎他是否在使用mysql_',這與問題完全無關。 – sgroves

回答

2

不要使用VALUES,使用SET

所有的
"UPDATE `members` SET `employer` = '".$employ."', `flat` = '".$address."' WHERE `login`='".$login_name."'" 
+0

感謝您的幫助。剛剛嘗試了你已經進入的動力,但仍然有相同的結果! – Tom36

+0

@ Tom36 hmm。將編輯答案與其他一些嘗試解決它:) – imulsion

+0

@ Tom36已編輯。現在就試試吧:) – imulsion

0

首先你不應該,如果你正在尋找在你的代碼的問題通過使用@ opperator取消錯誤消息。此外,您正在使用錯誤的圓括號('而不是')。其餘的代碼看起來很好。也許你需要給我們一些關於數據庫結構的信息,否則

+0

數據庫是'代碼'member_id,名字,姓氏,登錄名,密碼,年齡,僱主,平'代碼'仍然不shiwng任何錯誤 – Tom36

+0

@ Tom36你真的告訴它輸出錯誤? – sgroves

+0

這個名字本身無濟於事。首先嚐試刪除他'@'並使用基本的調試(例如在每個重要步驟之後使用'var_dump()'和'exit;')。如果這無助於告訴我們您的數據庫表是如何設計的。我的意思是像田野類型等。 – ferdynator