2013-07-12 73 views
0

我目前正在創建一個cms,除了add.php頁面外,其他都很好。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仍然沒有。

請幫忙

謝謝。

回答

1

你需要從

$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])'); 

改變你的PDO查詢是這樣的

$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是一個自動增量字段。您不需要將其包含在插入查詢中。

+0

嗨。我的應用程序ID是一個自動增量,我該如何添加? – kevstarlive

+0

嗨。所以你的'app_id'是你的主鍵還是不是?如果你有你自己的機制來生成你的'app_id',只需將'app_id'字段及其佔位符添加到prepare語句中,並在使用'execute'方法時插入生成的id。否則,您應該將此字段格式化爲自動增量字段。 –

+0

我的app_id不是主鍵。即時通訊不知道如何將此字段格式化爲自動增量字段。請你能告訴我如何?謝謝。 – kevstarlive

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參數。

+0

好的謝謝你。我如何讓mysql自動插入下一個數字。例如我現在在表中有2個字段,其中一個是app_id,另一個是app_id,另一個是2.什麼代碼可以重新應用?以上,使它以數字順序添加一個Id? – kevstarlive

+0

如果你的'app_id'列設置爲'AUTO_INCREMENT',那麼你可以忽略'INSERT'上的那一列,它將被填充。 – tadman

相關問題