[英]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.