簡體   English   中英

無法使用php將數據插入mysql數據庫

[英]Can not insert data into mysql database with php

我無法通過PHP將數據插入到表中。 “ cc_connect.php”是連接數據庫的文件。 表單在那里,但是當我提交它時,沒有數據添加到我的表中。 我遵循了一些教程,並成功地匹配了他們的方法。 我的數據庫中是否未設置某些內容?

功能$ dbcon與我的連接關聯

<form method="post" action="cc_registration.php">
<input type="hidden" name="submitted" value="true" />

    First Name: <input type="text" name="first_name" />
    Last Name: <input type="text" name="last_name" />

<br />
<input type="submit" value="submit" />

  <?php

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

   include ('cc_connect.php');

   if (!$dbcon) {

   die("Can not Connect: " . mysql_error());

}

   mysql_select_db("cooperstown",$dbcon);

$sql = "INSERT INTO cobra_registration (first_name,last_name) VALUES ('$_POST[first_name]', '$_POST[last_name]')";

mysql_query($sql,$dbcon);



mysql_close($dbcon);

}

  ?>

從未設置$_POST['submit']因為您正在傳遞submitted

更改:

<input type="hidden" name="submitted" value="true" />

至:

<input type="hidden" name="submit" value="true" />

附帶說明一下,您當前的查詢很容易被黑。 使用Prepared語句代替PDO或MysQLi,這是PDO中的一個示例:

$fName = isset($_POST['first_name']) ? $_POST['first_name'] : '';
$lName = isset($_POST['last_name']) ? $_POST['last_name'] : '';

if ($fName && $lName) {
   $stmt = $db->prepare('
      INSERT INTO cobra_registration (first_name,last_name) 
      VALUES (:fname, :lname)
   ');

   $stmt->bindParam(':fname', $fName, PDO::PARAM_STR);
   $stmt->bindParam(':lname', $lName, PDO::PARAM_STR);

   $res = $stmt->execute();

   if ($res) {
      echo 'Success';
   } else {
      echo 'Failure';
   }
}

mysql_ *函數已被棄用,不應再使用。 查看mysqliPDO

重要的提示

這對SQL注入攻擊開放。 您應該使用准備好的語句來防止此類攻擊。

GGio釘了他的答案,那是submitted ,但檢查submit 他還提供了一個PDO示例,因此我將在mysqli中演示同樣的事情:

$firstName = isset($_POST['first_name']) ? $_POST['first_name'] : '';
$lastName = isset($_POST['last_name']) ? $_POST['last_name'] : '';

if ($firstName && $lastName) {
    $stmt = $mysqli->prepare("INSERT INTO cobra_registration (first_name,last_name) 
  VALUES (?, ?)"); 
    $stmt->bind_param("ss", $firstName, $lastName);
    $stmt->execute();  

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM