MySQL中的更改表会影响php页面吗?

时间:2017-09-15 07:41:05

标签: php mysql

我有一个php页面,它将在登录时跟踪用户并将信息存储在名为' logins'的表中。在phpmyadmin上

现在的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");
	$thiscomp = mysql_result($get_client,0,"companyname");
          	
  $ip = $_SERVER['REMOTE_ADDR'];
	$logdate = date('Y-m-d H:i:s');
	$logyear = date('Y');
	$logmonth = date('m');
	$logqtr = ceil($logmonth/3);
              			
	$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 个答案:

答案 0 :(得分: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");

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

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