2017-09-15 5 views
1

私はphpMyAdminのMySQLのテーブルを変更するとPHPページに影響しますか?

上の「ログイン」という名前でログにユーザーを追跡し、テーブル内の情報を格納するPHPのページは現在、そのためのPHPコードはこの

$numlogin = mysql_num_rows($get_client); 
 
if($numlogin==1) { 
 
$thisid = mysql_result($get_client,0,"id"); 
 
$thisfore = mysql_result($get_client,0,"forename"); 
 
$thissur = mysql_result($get_client,0,"surname"); 
 
\t $thiscomp = mysql_result($get_client,0,"companyname"); 
 
      \t 
 
    $ip = $_SERVER['REMOTE_ADDR']; 
 
\t $logdate = date('Y-m-d H:i:s'); 
 
\t $logyear = date('Y'); 
 
\t $logmonth = date('m'); 
 
\t $logqtr = ceil($logmonth/3); 
 
       \t \t \t 
 
\t $reslog = mysql_query("insert into logins values ('','$myid','$loginemail','$thisfore','$thissur','$thiscomp', 
 
'$ip','$logdate','$logyear','$logmonth','$logqtr')") or die("Error 91");

のように見えてい

ipinfoを追加してその場所を追跡する場合は、iplocationを格納するテーブルに新しい列を追加する必要があります

どうすればいいですか?

phpmyadminでテーブルを変更し、後でPHPにコードを書き込むことはできますか? または正しい方法は何ですか?

答えて

1

いいえ、書いたコードを使用してloginsテーブルに安全に新しい列を追加することはできません。 INSERTステートメントには、挿入する列がリストされていないので、すべての列に値を指定する必要があります。テーブルの列を変更すると、値の数が列の数と一致しないため、クエリにエラーが発生します。

このため、INSERTのクエリでは常に明示的に指定する必要があります。それを次のように変更してください:

$reslog = mysql_query("insert into logins (id, userid, email, forname, surname, comp, ip, logdate, logyear, logmonth, logqtr) 
    values ('','$myid','$loginemail','$thisfore','$thissur','$thiscomp', 
      '$ip','$logdate','$logyear','$logmonth','$logqtr')") or die("Error 91"); 

もちろん、使用した列名をテーブルの実際の列名に置き換えてください。

これを実行すると、コードにエラーが発生することなく新しい列をテーブルに追加できるようになります。

関連する問題