I am having below error when trying to delete an item.
Fatal error: Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'databaseName.tableName' doesn't exist in /storage/h1/735/500735/public_html/delete.php:21 Stack trace: #0 /storage/h1/735/500735/public_html/delete.php(21): PDOStatement->execute() #1 {main} thrown in /storage/h1/735/500735/public_html/delete.php on line 21
Note : tableName here is tblcart
File delete.php
<?php
session_start();
require("dbconfig.php");
if (isset($_GET['delete_id'])) {
$stmt_select = $DB_con->prepare('SELECT * FROM tblcart WHERE productID =:id');
$stmt_select->execute(array(':id'=>$_GET['delete_id']));
$result=$stmt_select->fetch(PDO::FETCH_ASSOC);
$stmt_delete = $DB_con->prepare('DELETE FROM tblCart WHERE productID =:id AND userID =:userID');
$stmt_delete->bindParam(':id', $_GET['delete_id']);
$stmt_delete->bindParam(':userID', $_SESSION['userid']);
$stmt_delete->execute();
header("Location: cart.php");
}
?>
Refer to the error note. The error occurred on line $stmt_delete->execute();. If I run the code through my local PC localhost, it is functioning well, but when running on a web hosting server I am getting this error.
File dbconfig.php
<?php
$DB_HOST = 'localhost';
$DB_USER = 'root';
$DB_PASS = 'password';
$DB_NAME = 'databaseName';
try{
$DB_con = new PDO("mysql:host={$DB_HOST};dbname={$DB_NAME}",$DB_USER,$DB_PASS);
$DB_con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e){
echo $e->getMessage();
}
?>
Table 'databaseName.tableName' doesn't existwhat's unclear?dbconfig.phpas wellproductIDand auserIDto make the delete unique then you probably also need theuserIDin theSELECTor you might get more than one row selected by the SELECT and be deleting randon rowstableNamesomewhere in your code, since it's the table missing in the error, and the code you're showing only refertblcart. Maybe you should start with fixing that.tableNameis referring totblcart. So the error note should bedatabaseName.tblcartbut I do on purpose replacing thedatabaseName.tblcartasdatabaseName.tableName