PHP,MySQL输入数据

时间:2017-01-30 11:04:38

标签: php mysql

我创建了一些表(在MySQL中):

create table clients
( clientid int unsigned not null auto_increment primary key,
  Name char(50) not null,
  SecondName char(50) not null,
  address char(100) not null,
  City char(30) not null
  Email char(100); 

我想通过客户填写他的个人数据,从网页输入数据(姓名,SecondName,地址,城市,电子邮件)到我的数据库NewClientBase中,但是clientid应该由程序生成:

<html>   
<?php    
...
  // short names initialization. Taken from filling external form
  $Name=$_POST['Name'];    
  $SecondName=$_POST['SecondName'];    
  $Address=$_POST['Address'];    
  $City=$_POST['City'];    
  $Email=$_POST['Email'];    
 $clientid=0;    

  if (!$Name || !$SecondName || !$Address || !$City || !$Email) {    
     echo "Not all data completed.<br />"
          ."Return and try again";
     exit;
  }    

  if (!get_magic_quotes_gpc()) {    
    $Name = addslashes($Name);    
    $SecondName = addslashes($SecondName);    
    $Address = addslashes($Address);    
    $City = addslashes($City);    
    $Email = doubleval($Email);    
  }    
  @ $db = new mysqli('localhost', 'root', '********', 'NewClientBase');    

$wynik_sprawdzania= mysqli_query($db, $sprawdzanie);    
$ile_znalezionych=$wynik_sprawdzania->fetch_row();     
$ilosc_pol=$wynik_sprawdzania->field_count;    
.....     
      // a new record with the next number is calculated:

    $clientid=$wynik_sprawdzania->fetch_row()+1;    
....    
and created a new record with this number:        
$zapytanie = "insert into clients values        ('".$clientid."','".$Name."','".$SecondName."', '".$Address."','".$City."',     '".$Email."')";    
  $wynik = $db->query($zapytanie);    
 .....    
 $db->close();     
?>    
</html>    
问题是:
 if(例如)生成第5条记录并像这样输入数据库

$zapytanie = "insert into clients values (5,'".$Name."','".$SecondName."',     '".$Address."','".$City."', '".$Email."')";    
  $wynik = $db->query($zapytanie);  

所有记录都正确插入数据库 但如果像这样插入

$zapytanie = "insert into clients values     
('".$clientid."','".$Name."','".$SecondName."', '".$Address."','".$City."',     '".$Email."')";    
  $wynik = $db->query($zapytanie);    

($ clientid No 5是按程序计算的,如上所示)记录未创建。没有&#34; .clientid。&#34;&#39;并且&#39;。$ clientid。&#39;有谁能够帮我?有解决方案吗?感谢

2 个答案:

答案 0 :(得分:0)

ClientId定义为Int,而不是字符串。你试着输入字符串。删除$ clientid上的单引号。

$zapytanie = "insert into clients values     
(".$clientid.",'".$Name."','".$SecondName."', '".$Address."','".$City."',     '".$Email."')";    
  $wynik = $db->query($zapytanie); 

答案 1 :(得分:0)

变量$ clientid应该被视为整数,不应该添加任何引号。

$zapytanie = "insert into clients values     
(".$clientid.",'".$Name."','".$SecondName."', '".$Address."','".$City."',     '".$Email."')";    
  $wynik = $db->query($zapytanie); 

希望这有帮助