Я новичок в php и работает над классом pdo crud. Моя функция вставки сама по себе работает, но я пытаюсь использовать одну функцию для вставки и обновления. Я исследовал и увидел, что вы можете использовать ON DUPLICATE KEY UPDATE, чтобы сделать это, но когда я добавлю его в свою функцию, он не работает.ON DUPLICATE KEY UPDATE в публичной функции php не работает
Вот мой оригинальный INSERT, который работает;
//INSERT
public function insert($product_name,$color,$description,$used_for){
$query="INSERT INTO makeup SET product_name='$product_name', color='$color', description='$description', used_for='$used_for'";
$result= $this->mysqli->query($query) or die(mysqli_connect_errno()."product cannot inserted");
if($result){
header('location:read.php');
}
}
и вот один с добавленным дублированием KEY UPDATE (не работает) без сообщений об ошибках, пункты просто не обновлять или вставлять
//INSERT and UPDATE
public function insert($product_name,$color,$description,$used_for){
$query="INSERT INTO makeup SET product_name='$product_name', color='$color', description='$description', used_for='$used_for'
ON DUPLICATE KEY UPDATE makeup SET product_name='$product_name', color='$color', description='$description', used_for='$used_for'";
$result= $this->mysqli->query($query) or die(mysqli_connect_errno()."product cannot inserted");
if($result){
header('location:read.php');
}
}
и вызывается с помощью:
include('Crud_class.php');
if(isset($_REQUEST['submit'])){
$obj=new Crud("localhost","root","password","dbname");
extract($_REQUEST);
$obj->insert($product_name,$color,$description,$used_for);
}
Что не работает? Есть ли сообщения об ошибках? – Mike
У вас также есть синтаксическая ошибка в оригинальной версии, поэтому нет возможности работать. – Mike
Исправлена ошибка синтаксиса при копировании кода здесь нет в исходном коде – meztli