2016-04-24 129 views
-3

我想用php將數據添加到Mysql數據庫。我已連接到數據庫,但數據未被插入到表中。這是我的代碼,並且提前感謝你!在php中插入數據到mysql

<?php 
ob_start(); 
include("db.php"); 
if(isset($_POST['send'])!="") 
{ 
$sql = "INSERT INTO `Scouting`(`Team #`,`High Goal Made`,`High Goal  Missed`) 
         VALUES(`$username`,`$usermail`,`$usermobile`)"; 
$username=mysql_real_escape_string($_POST['Team #']); 
$usermail=mysql_real_escape_string($_POST['High Goal Made']); 
$usermobile=mysql_real_escape_string($_POST['High Goal Missed']); 

    if ($conn->query($sql) === TRUE) { 
echo "New record created successfully"; 
    } else { 
echo "Error: " . $sql . "<br>" . $conn->error; 
    } 

if($update) 
{ 
    $msg="Successfully Updated!!"; 
    echo "<script type='text/javascript'>alert('$msg');</script>"; 
    header('Location:index.php'); 
} 
else 
{ 
$errormsg="Something went wrong, Try again"; 
    echo "<script type='text/javascript'>alert('$errormsg');</script>"; 
    header('Location:index.php'); 
} 
} 
ob_end_flush(); 
?> 
+0

什麼是$更新refeer?如果它是空的或不是isset,所以數據不會被插入,這是正常的 – PacMan

+0

請顯示您的HTML代碼。 –

+0

錯誤的標識符限定符和混合apis –

回答

2

你的代碼有很多問題:

  1. ,除非你真的有多個連續的空格在您的列名

    High Goal Missed

    查詢不會有任何效果。

  2. 更糟的是,您在設置它們之前嘗試在查詢中使用變量。這也是行不通的。

  3. 您也有語法錯誤,因爲您將自己的值用反引號(`)代替引號或單引號。

  4. 最重要的是,您似乎混合了MySQL(mysql_*)和MySQLi API。沒有看到db.php的內容是不可能的,但是沒有辦法,例如,混合$conn->query(...)mysql_real_escape_string(...)是正確的。

你的代碼看起來應該像這樣(未經):

<?php 

ob_start(); 
include("db.php"); 
if(isset($_POST['send'])!="") 
{ 
    $sql = "INSERT INTO `Scouting`(`Team #`,`High Goal Made`,`High Goal Missed`) 
     VALUES(?, ?, ?)"; 
    $stmt = $conn->prepare($sql); 
    $stmt->bind_param('sss', $_POST['Team #'], $_POST['High Goal Made'], $_POST['High Goal Missed']); 
    $result = $conn->execute(); 

    if (!$conn->error) { 
     echo "New record created successfully"; 
    } else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
    } 

    if($update) // you never set this; I have no idea what it is supposed to be 
    { 
     $msg="Successfully Updated!!"; 
     echo "<script type='text/javascript'>alert('$msg');</script>"; 
     header('Location:index.php'); 
    } 
    else 
    { 
     $errormsg="Something went wrong, Try again"; 
     echo "<script type='text/javascript'>alert('$errormsg');</script>"; 
     header('Location:index.php'); 
    } 
} 
ob_end_flush(); 
?> 

其它問題

您應該使用像PHPStorm的IDE,它會自動捕捉這些東西。

您的變量名稱非常混亂,似乎不匹配表單數據中的字段。它看起來像是在一起發現你在某處發現的兩個或更多腳本的碎片。這是一場災難。

您對SQL injection開放。並請don't use mysql_*; mysql_*功能已過時,deprecated,並且不安全。改爲使用MySQLiPDO

+1

錯誤的標識符在值和操作符中混合apis –

+0

@ Fred-ii-添加了這些點。感謝您指出。這就是我試圖修復今晚完全破壞的PHP/MySQL腳本所得到的結果...... –

+0

'$ conn-> query()'使它看起來像mysqli。但我很懷疑。不看db。php(可能是新手隱藏mysql_函數的那些聰明的包裝器之一)+10。使用綁定佔位符編寫的語句我很困惑爲什麼名爲$ username的變量的內容將被插入名爲「Team#」的列中。分配給其他列的值相同...... $ usermobile轉化爲「高目標錯過」。什麼是塑料?就像兩個不同的腳本混雜在一起,我不得不停止試圖找出它,這讓我的頭部受傷。 – spencer7593