我是新來的PHP和MySQL,但有一個項目,我必須對我的類與Silex 2.0和Symfony做和我有我的PHP代碼和外國的問題數據庫中我的產品表中的鍵。PHP/MySQL外鍵將id = 0保存爲數據庫
問題是在我的程序中保存功能的正確方法。
下面是我的數據的基礎上發生的事情,當我嘗試添加或編輯新產品 - 我得到idCategory和idProducent = 0:/
而且有我的代碼部分ProductModel.php負責保存它數據庫(表產品):
public function addProduct($data) { $sql = 'INSERT INTO `products` (`id`, `idCategory`, `idProducent`, `name`, `price_netto`, `price_brutto`, `desc`) VALUES (NULL,?,?,?,?,?,?)'; $data['price_netto'] = $data['price_brutto'] * 1.22; $this->_db->executeQuery( $sql, array( $data['idCategory'], $data['idProducent'], $data['name'], $data['price_netto'], $data['price_brutto'], $data['desc']) ); }
public function saveProduct($data)
{
if (isset($data['id']) && ctype_digit((string)$data['id'])) {
$sql = "UPDATE
products
SET
idCategory = ?, idProducent = ?, name = ?,
price_netto = ?, price_brutto = ?, `desc` = ?
WHERE
id = ?";
$data['price_netto'] = $data['price_brutto'] * 1.22;
$this->_db->executeQuery(
$sql, array(
$data['idCategory'], $data['idProducent'], $data['name'],
$data['price_netto'], $data['price_brutto'], $data['desc'], $data['id'])
);
} else {
$sql = "INSERT INTO
`products` (`id`, `idCategory`, `idProducent`, `name`, `price_netto`, `price_brutto`, `desc`)
VALUES
(NULL,?,?,?,?,?,?)";
$data['price_netto'] = $data['price_brutto'] * 1.22;
$this->_db->executeQuery(
$sql, array($data['id']), array(
$data['idCategory'], $data['idProducent'], $data['name'],
$data['price_netto'], $data['price_brutto'], $data['desc'])
);
}
}
這裏有ProductController.php [我認爲部分是很重要的位置]: https://codeshare.io/5w4rRD
而且從ProducentsModel.php和CategoriesModel.php功能:
public function getProducents()
{
$sql = 'SELECT * FROM producents;';
return $this->_db->fetchAll($sql);
}
public function getCategories()
{
$sql = 'SELECT * FROM categories;';
return $this->_db->fetchAll($sql);
}
對不起,讓你只鏈接但是這是我第一次與堆棧溢出,希望你能夠理解。
你能分享你的表格結構嗎? –
http://screenshot.sh/oe5YXJ1HXU3Jq http://screenshot.sh/n9GN2B179sVUM – Abadd0n
您使用的是MyISAM還是InnoDB? –