0

私は現在cmsを作成しています.add.phpページ以外はすべて問題ありません。

このページの私のコードは次のとおりです。

<?php

session_start();

include_once('../include/connection.php');

if (isset($_SESSION['logged_in'])){
      if (isset($_POST['title'], $_POST['content'])) {
             $title = $_POST['title'];
             $content = nl2br($_POST['content']);
             $image = $_POST['Image URL'];
             $link = $_POST['Link'];
             $price = $_POST['Price'];

if (empty($title) or empty($content)) {
             $error = 'All Fields Are Required!';
}else{
 $query = $pdo->prepare('INSERT INTO `apps`(`app_id`, `app_title`, `app_content`, `app_img`, `app_link`, `app_price`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6])');
$query->execute(array(
':title' => $title,
':content' => $content,
':image' => $image,
':link' => $link,
':price' => $price
));

     $query->execute();
}if($result){
        echo("<br>Input data is successful");
    } else{
        echo("<br>Input data failed");
    }

}
          ?>

<html>
<head>
<title>testing</title>
<link rel="stylesheet" href="../style.css" />
</head>

<body>
<div class="container">
<a href="index.php" id="logo">CMS</a>

<br />


<h4>Add Article</h4>

<?php if (isset($error)) { ?>
     <small style="color:#aa0000;"><?php echo $error; ?></small><br /><br />
<?php } ?>


<form name = "myform" action="add.php" method="post" autocomplete="off">


<input type="text" name="title" placeholder="Title" /><br /><br />
<textarea rows="15" cols="50" placeholder="Content" name="content"></textarea><br /><br />
<input type="text" name="Image URL" placeholder="Image URL" /><br /><br />
<input type="text" name="Link" placeholder="Link" /><br /><br />
<input type="text" name="Price" placeholder="Price" /><br /><br />
 <input type="submit" name="submit" value="Add Article" />

</form>

</div>
</body>
</html>


<?php
}else{
       header('location: index.php');
}
error_reporting(E_ALL);

?>

私の問題です。私のコードはエラーログにエラーを表示していませんが、人々は問題ないと言っています。しかし、それはデータベースに追加されていません。コードの各ビットを分解して、何が起こっているのかを調べる方法はありますか?

または、エラーの内容を表示する方法はありますか? 私のエラー報告は E_ALL | でオンになっています。E_STRICT それでも何もありません。

助けてください

ありがとうございました。

4

2 に答える 2

1

PDOクエリをから変更する必要があります

 $query = $pdo->prepare('INSERT INTO `apps`(`app_id`, `app_title`, `app_content`, `app_img`, `app_link`, `app_price`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6])');

このようなものになる

$query = $pdo->prepare('INSERT INTO `apps`(`app_title`, `app_content`, `app_img`, `app_link`, `app_price`) VALUES (:title,:content,:img,:link,:price)');

PDO::prepareメソッドがプレースホルダーでどのように機能するかを確認する必要があります。さらに、あなたapp_idが自動インクリメントフィールドの場合。挿入クエリに含める必要はありません。

于 2013-07-12T14:59:58.243 に答える
0

プレースホルダーが正しい表記法を使用しておらず、正しく名前が付けられていないため、これがどのように機能するかわかりません。

クエリは次のようになります。

$query = $pdo->prepare('INSERT INTO `apps`(`app_id`, `app_title`, `app_content`, `app_img`, `app_link`, `app_price`) VALUES (:app_id, :app_title, :app_content, :app_img, :app_link, :app_price)');
$query->execute(array(
  ':app_id' => ???,
  ':app_title' => $title,
  ':app_content' => $content,
  ':app_img' => $image,
  ':app_link' => $link,
  ':app_price' => $price
));

:app_idまた、パラメータが欠落しているようです。

于 2013-07-12T14:59:37.567 に答える