2016-12-05 62 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值之前 存儲它們。