PHP,MySQL的输入数据

问题描述:

我创造一些表(在MySQL):PHP,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); 

我想输入DATAS(名称,SecondName,地址,城市,电子邮件)到我的数据库NewClientBase从网页由客户填写

<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>  

的问题是::
如果(例如)产生并输入5到记录数据库这样

01他的个人数据,但客户端ID应该由程序生成

将所有记录正确插入到数据库中。
但如果它被插入这样

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

(如上所示$的clientid否5 programly计算)记录不被创建。既不''.clientid。''也不'。$ clientid。'有谁能够帮助我?有任何解决方案?谢谢

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

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

好,和如何解决? – adrian

+0

解决方案是我上面写的源代码行。变量周围的单引号使字符串插入。 Wirhout它是一个数字。 –

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

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

希望这有助于

+0

它的工作原理。帮助很多家伙! – adrian

+0

Hy!一切都有效,但以一种平静的方式。这是我的程序: – adrian