我創建簡單的應用程序,使用PDO第一次,並堅持對 問題...
我搜索網頁的東西類比,但沒有找到它。
我無法在表格中插入數據。自動遞增值正在改變,所以 一些數據被髮送到表。
如果我使用變量中的值回顯查詢,請將其複製並粘貼到 phpmyadmin中,行插入正確。
日誌包含相同的查詢,MySQL和PHP不返回任何錯誤...
現在我有:
類文章:
問題的插入到MySQL表,由PHP PDO
class article{
private function findMaxSortId($pdo_object){
$query_sort="
SELECT MAX(sort_id) as max_id
FROM articles";
try{
$pdo_object->prepare($query_sort);
$max_row=$pdo_object->query($query_sort)->fetch(PDO::FETCH_ASSOC);
}
catch(PDOException $eSortId){
$return['error_code_sort']=$eSortId->errorCode();
$return['error_info_sort']=$eSortId->errorInfo();
}
$return['max_id']=$max_row['max_id'];
return $return;
}
public function createArticle($pdo_object, $title, $body, $visible, $incerase_sort_id=2){
$return=$this->findMaxSortId($pdo_object);
$sort_id=$return['max_id']+$incerase_sort_id;
$pdo_object->exec("
INSERT INTO `articles` (sort_id, visible, title, body)
VALUES ('".$sort_id."', '".$visible."', '".$title."', '".$body."')
");
$return['id']=$pdo_object->lastInsertId();
return $return;
}
}
的index.php:
if(isset($_POST['save'])&&$_POST['save']=='add'){
if (isset($_POST['visible'])) {
$visible=1;
}
else{
$visible=0;
}
require_once 'class/class.article.php';
$art = new article();
$art->createArticle($pdo, $_POST['title'], $_POST['body'], $visible);
unset($art);
}
文章表DB:
CREATE TABLE `articles` (
`article_id` int(11) NOT NULL AUTO_INCREMENT,
`sort_id` int(11) DEFAULT NULL,
`lastmod` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`visible` tinyint(1) DEFAULT NULL,
`title` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,
`body` text COLLATE utf8_unicode_ci,
PRIMARY KEY (`article_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
我做錯了嗎?
請幫忙。
貌似問題比較複雜。
我無法執行任何使用PDO在數據庫中寫入內容的操作。
我可以查詢DB和「讀取」值,但是如果我使用INSERT或UPDATE,則什麼也沒有發生。
我在64位操作系統上使用WampServer 2.1。
我可以在沒有PDO的情況下執行此操作,使用mysql查詢,提取等操作。
@喬恩斯特林和sanmai你是對的,但是這是我的組合結果;)報價爲第一選擇,以這種形式我應該張貼的代碼,但我改變了很多次,只是忘了改回來 – tomiozo
我只是將這些反引號改爲引號。只是爲了不誤導別人。 – tomiozo