2016-12-05 64 views
0

你好,我已经写了代码,从形式插入数据到MySQL数据库:添加从形式将数据插入我的SQL DATABSE用PHP

$conn = new PDO("mysql:dbname=data12;host=$servername", $username, $password); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$ul = $_POST['fname']; 
$sql="insert into t22 values('16',".$ul.")"; 

的纪录,但为空值。 我也尝试过其他的语法,如:

$sql="insert into t22 values('16',$ul)"; 
$sql="insert into t22 values('16','".$ul."')"; 
$sql="insert into t22 values('16',$ul)"; 

请帮我一下。

+0

'$ _POST ['fname']'包含什么?显示你的HTML表单。 – Qirel

+0

另外...你已经找到了PDO,但没有准备好的查询?真的吗?正确的用法是'$ sql-> prepare(“INSERT INTO t22 VALUES(?,?))”;''''sql-> execute(['16',$ _ POST ['fname']]);'' – junkfoodjunkie

+0

我还添加了$ stmt = $ conn-> prepare(“INSERT INTO t22 VALUES('10',:fname)”);有趣的是,如果我使用:$ u ='testtt'; $ stmt-> bindparam(':fname',$ u);它会工作,但当我使用$ u = $ _POST ['fname'];而不是$ u ='testtt';不起作用。我也回应post命令后的$ u,它有价值,但不会影响数据库。 – hosseinpink

回答

0

使用此代码:

<?php 
$conn = new PDO("mysql:dbname=data12;host=$servername", $username, $password); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$ul = $_POST['fname']; 
$id = 16; 


$sql="INSERT INTO t22 (data1,data2) VALUES(?,?)"; 
$result = $conn->prepare($sql); 
$result->execute(array($id,$ul)); 

?> 

更改数据1和数据2与列的名称

这对我的作品。
我相信它适合你!

+0

@hosseinpink随时检查我的答案为正确的:D –

+0

这是一团糟。 –

+0

你是什么意思? @MasivuyeCokile –

0

首先要确保未插入空值,您需要检查该值是否已从表单中设置,然后在设置值时执行查询,还需要在使用PDO时准备好语句,也不要直接在查询中使用占位符输入变量。

这个你代码的外观:

<?php 
$conn = new PDO("mysql:dbname=data12;host=$servername", $username, $password); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 


$errors = ""; 

$number = 16; 

if (isset($_POST['buttonName'])) { 

    //check if the field is not empty 


    if (empty($_POST['fname'])) { 

     echo "enter name"; 
     $errors++; 
    } else { 


     $ul = $_POST['fname']; 
    } 

    if ($errors <= 0) {//no errors lets insert 

     $sql = $conn->prepare("INSERT INTO t22 (id,name) values(?,?)"); 
     $sql->execute(array(
      $number, 
      $ul 
     )); 

     echo "record entered"; 
    } 

} 

?> 

希望这能在正确的方向指向你。

注意:它重要的是你过滤和清理$ _POST值之前 存储它们。