[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с lastInsertID()
nidevil
Перепробовал все, не могу решить такую задачу: У меня сохраняются данные в две таблице, ну соответственно мне нужно сохранеyный id первой таблицы закинуть во вторую:

таблицы стандарты поэтому приводить их не буду, вот собственно сам код:
Это add.php

<?php
require_once "../lib/invoice_class.php";

$db=new DataBase;
$data=date("Y-m-d H:i:s");
require_once "../lib/parts_class.php";
$class=new Invoice;


$select_parts_db=$db->select("parts", "count>0");
for($i=0;$i<count($select_parts_db);$i++){
$select_parts.="<option valie=".$select_parts_db[$i][id].">".$select_parts_db[$i][name]."</option>" ;
}

if ($_POST[submit]=="save_sale"){
$fio = $_POST['fio'];
$telefon = $_POST['telefon'];
$subtotal = $_POST['subtotal'];
$error_mag=$db->insert("magazin","data, fio, telefon, id_master, oplacheno","'".$data."', '".$fio."', '".$telefon."' , '".$_SESSION[user_id]."', '".$subtotal."'");



for($k=0;$k<count($_POST['name_parts']);$k++)
{
$error_parts=$db->insert("magazin_parts","id_magazin, name_parts, price, kolvo, sum_parts","'".$id."', '".$_POST['name_parts'][$k]."', '".$_POST['price'][$k]."' , '".$_POST['kolvo'][$k]."', '".$_POST['sum_parts'][$k]."'");
}

}

?>

Ну и есть еще в папке lib db_class.php:

<?php
require_once "config_class.php";
class DataBase
{
private $db_host = "db_host";
private $db_name = "db_name";
private $db_user = "db_user";
private $db_pass = "db_pass";

public function __construct()
{
$this->connectDb($this->db_name, $this->db_user, $this->db_pass, $this->db_host);
$this->config = new Config();
}

public function __destruct()
{
$this->db = null;
}

//СОЕДИНЕНИЕ

public function connectdb($db_name, $db_user, $db_pass, $db_host = "localhost")
{
try {$this->db = new \pdo("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);}
catch (\pdoexception $e) {echo "database error: " . $e->getmessage();die();}
$this->db->query('set names utf8');
return $this;
}

//КОЛИЧЕСТВО

public function selectCount($table,$where){
if (strlen($where)>1) $query = "select count(*) from $table where $where";
else $query = "select count(*) from $table";
$sth = $this->db->prepare($query);
$sth->execute();
$row = $sth->fetch();
return $row[0];

}

//УДАЛИТЬ

public function delete($table,$where){
if (strlen($where)>1) $query = "delete from $table where $where";
else return false;
$sth = $this->db->prepare($query);
$sth->execute();
return true;

}

//ВЫВОД

public function select($table_name, $where = "") {
if($where) $query = "select * from $table_name where $where";
else $query = "select * from $table_name";
$sth = $this->db->prepare($query);
$sth->execute();
$i = 0;
while($row = $sth->fetch())
{
$data[$i] = $row;
$i++;
}
return $data;
}

//ОБНОВИТЬ

public function update($table_name, $where = "") {
$query = "UPDATE $table_name SET ";
if($where)
{
$query .= "$where";
$sth = $this->db->prepare($query);
$sth->execute();
return true;
}
else false;
}

//ДОБАВИТЬ

public function insert($table, $columns, $value) {
$query = "insert into $table($columns) values ($value)";
$sth = $this->db->prepare($query);
try {
$this->db->beginTransaction();
$result = $sth->execute();


$this->db->commit();


} catch (\PDOException $e) {
$this->db->rollback();
echo "Database error: " . $e->getMessage();
die();
}
if (!$result) {
$info = $sth->errorInfo();
printf("Database error %d %s", $info[1], $info[2]);
die();
}
return $result;

}

}



?>

Куда сунуть этот lastinsertid() просто сил нет, echo из classa могу вывести, а чтоб в бд записать просто трандец. рисует ноль и все...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.