2011-08-03 4 views
0

I以下のPHP/SQL要求があります。PHP/SQL - UPDATE、perfomeと成功を返すが、DBには更新が行われていない

それが正常に接続され、実行更新が正常に(成功MSGを返す)が、中にphpMyAdmin、データベースは更新されていません。私は間違って何をしていますか?

<?php 

{ // Connect and Test MySQL and specific DB (return $dbSuccess = T/F) 

      $hostname = "localhost"; 
      $username = "root"; 
      $password = "";    
      $databaseName = "db_test";  
      $dbConnected = mysql_connect($hostname, $username, $password); 
      $dbSelected = mysql_select_db($databaseName,$dbConnected); 

      $dbSuccess = true; 
      if ($dbConnected) { 
       if (!$dbSelected) { 
        echo "DB connection FAILED<br /><br />"; 
        $dbSuccess = false; 
       }  
      } else { 
       echo "MySQL connection FAILED<br /><br />"; 
       $dbSuccess = false; 
      } 
} 

// Execute code ONLY if connections were successful 
if ($dbSuccess) {  

     // SQL to change country value from UK to United Kingdom 
     $company_SQLupdate = "UPDATE tCompany SET ";    
     $company_SQLupdate .= "COUNTRY = 'United Kingdom' ";    
     $company_SQLupdate .= "WHERE COUNTRY = 'UK' ";   
     if (mysql_query($company_SQLupdate)) { 
      echo "UPDATE tCompany.COUNTRY - SUCCESSFUL.<br /><br />"; 
     } else { 
      echo "UPDATE tCompany.COUNTRY - FAILED.<br /><br />"; 
     } 
} 

?>

答えて

1

変更:

if (mysql_query($company_SQLupdate)) { 
    echo "UPDATE tCompany.COUNTRY - SUCCESSFUL.<br /><br />"; 
} else { 
    echo "UPDATE tCompany.COUNTRY - FAILED.<br /><br />"; 
} 

if (mysql_query($company_SQLupdate)) { 
    echo "UPDATE tCompany.COUNTRY - SUCCESSFUL.<br /><br />"; 
} else { 
    var_dump(mysql_error()); 
} 

にあっRECかどうかを確認するために、エラー

EDIT 1

select * 
from tCompany    
WHERE COUNTRY = 'UK' 

を参照するにはords with COUNTRY = 'UK'

+0

エラーはありません。成功を返す。どうして? – Iladarsda

+0

@Peteなぜエラーはありませんか? ** edit1 ** – Subdigger

+0

で実行するコードはどこに置くべきですか? – Iladarsda

1

あなたは、列名は大文字であることを絶対によろしいですか?

私は「カントリー」について話しています。

「国」ではありませんか?

+0

これは国です - 間違っています。彼らは何を成功に戻しますか? – Iladarsda

+0

where節は0行を見つけてそれに応じて0行を更新するため、成功を報告します。メッセージは、私が思い出したように - 更新OK、0行が変更されました。 :) – Nemanja

+0

なので、COUNTRY列が見つからない場合にのみエラーを返します。 – Iladarsda

3

DBにcountry = 'UK'のレコードがありますか?

完全なクエリを示す成功メッセージを変更し、phpMyAdminでそのステートメントを実行して、変更が表示されているかどうかを確認できます。

+0

どのように完全なクエリを表示できますか? – Iladarsda

+0

変更 'エコー "UPDATE tCompany.COUNTRY - SUCCESSFUL

。";' 'エコーに "$ company_SQLupdate - SUCCESSFUL

。";' –

+0

これはしようとする最初のものです - UPDATE文は、「彼らはドン場合でも、成功しています行には影響しません。このような場合には、['mysql_affected_rows()'](http://www.php.net/manual/en/function.mysql-affected-rows.php)を使って影響を受ける行の数を確認することができますUPDATEステートメントによって。 –

関連する問題