2017-09-15 81 views
1

我有PHP页面,将跟踪在日志的用户和存储命名为“登录”上的phpmyadmin在表中的信息在MySQL中改变表格是否会影响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"); 

当然,将我使用的列名替换为您的表的实际列名称。

完成此操作后,您应该可以向表中添加新列而不会导致代码出错。

相关问题