簡體   English   中英

php pdo 插入不返回

[英]php pdo insert doesn't return

我正在嘗試使用 pdo 將表單插入數據庫。 每次我點擊提交,它似乎根本沒有通過我的功能。 我覺得我忽略了一些東西(現在 2 個小時)。

pdo 連接有效(在其他文件中有效)

我看不到我的錯誤。 也沒有任何警報得到回應。

我覺得問題出在這里: if(isset($_POST['insert'])){

或者使用<input name="insert">它們在我看來似乎是正確的。

一些幫助將不勝感激。

<form action="insertdata.php" method="post">

<div id="mainwrapper">
<input type="text" Placeholder="URL" name="url"><br>
<input type="text" Placeholder="Title" maxlength="40" name="title"><br>
<input type="textarea" Placeholder="Description" maxlength="200" name="description"><br>
<input type="text" Placeholder="Context" maxlength="25" name="location"><br>
<input id="submit" class="button" name="insert" type="submit" value="submit"></input>

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// php insert data to mysql database using PDO

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

        echo '<script type="text/javascript">alert("test")</script>';


        // connect to pdo

    try{
        $pdoConnect = new pdo('pdo connection works correctly');
    }catch (PDOException $exc){
        echo $exc->getMessage();
    exit();
    }
    if(!$pdoConnect)
    {
        echo '<script type="text/javascript">alert("Oups")</script>';

    }

    // get values form input text and number
    $url=$_POST['url'];
    $title=$_POST['title'];
    $description=$_POST['description'];
    $location=$_POST['location'];
    // mysql query to insert data
    if($url=="")
    {
        echo '<script type="text/javascript">alert("You forgot something!")</script>';
    }

    $pdoQuery = "INSERT INTO `index` (`url`, `title`, `description`, `location`) VALUES (:url,:title,:description,:location)";



    $pdoResult = $pdoConnect->prepare($pdoQuery);

    $pdoExec = $pdoResult->execute(array(":url"=>$url,":title"=>$title,":description"=>$description,":location"=>$location));


        // check if mysql insert query successful
    if($pdoExec)
    {
        echo 'Thank you for submitting your website, you can now look for yourself';
    }else{
        echo 'Something went wrong, please contact us at a page we still need to make';
    }
}
?>
    </form>```

我的表單有一個重新加載頁面的操作,而不是通過 php 函數運行。 我只需要將其刪除。 謝謝您的幫助

<form method="post">
^
|
<form action="index.php" method="post">

我已經復制了你的整個代碼並運行了它。 它工作得很好。

我認為您的表列數據類型有問題。 檢查您是否擁有文本或 varchar 數據類型的所有列。

這是你的代碼:

<form action="index.php" method="post">

<div id="mainwrapper">
<input type="text" Placeholder="URL" name="url"><br>
<input type="text" Placeholder="Title" maxlength="40" name="title"><br>
<input type="textarea" Placeholder="Description" maxlength="200" name="description"><br>
<input type="text" Placeholder="Context" maxlength="25" name="location"><br>
<input id="submit" class="button" name="insert" type="submit" value="submit"></input>

<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$password = '';

try {
    $pdoConnect = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

if (!$pdoConnect) {
    echo '<script type="text/javascript">alert("Oups")</script>';

}

// get values form input text and number
$url         = $_POST['url'];
$title       = $_POST['title'];
$description = $_POST['description'];
$location    = $_POST['location'];
// mysql query to insert data
if ($url == "") {
    echo '<script type="text/javascript">alert("You forgot something!")</script>';
}

$pdoQuery = "INSERT INTO `index` (`url`, `title`, `description`, `location`) VALUES (:url,:title,:description,:location)";

$pdoResult = $pdoConnect->prepare($pdoQuery);

$pdoExec = $pdoResult->execute(array(
    ":url" => $url,
    ":title" => $title,
    ":description" => $description,
    ":location" => $location
));


// check if mysql insert query successful
if ($pdoExec) {
    echo 'Thank you for submitting your website, you can now look for yourself';
} else {
    echo 'Something went wrong, please contact us at a page we still need to make';
}

?>


</div>
</form>

和表:

CREATE TABLE `index` (
  `url` varchar(255) NOT NULL,
  `title` varchar(255) NOT NULL,
  `description` varchar(255) NOT NULL,
  `location` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

暫無
暫無

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

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