Задать вопрос
@Anonymous85966

В чем проблема этого кода?

Требовалось записать в базу данных товар и тут же получить идентификатор этого товара. Создал sql запрос, использовал функцию multy_query, но в итоге никак не могу получить id созданного товара.
В чем ошибка?

$connection=new mysqli("localhost","?","?","?");

$sql="INSERT INTO products(name,href,price,image_href) VALUES ('$name','$href','$price','$img'); SELECT @@IDENTITY";

if ($connection->connect_error){

    die("Connection failed");

}


if ($connection->multi_query($sql)===true){  //это условие выполняется
    if ($r =$connection->store_result()) { //это условие уже не выполняется
        while ($row = $r->fetch_row()) {
           echo $row[0];
        }
    }
  • Вопрос задан
  • 125 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
в том что это бессмысленный набор случайных огрызков, надерганных из интернета
А должно быть так:
- соединяемся правильно
- запрос выполняем один
- переменные передаем в него через подстановки, а не напрямую
- идентификатор получаем правильно, а не через одно место автогеном
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 
$conn=new mysqli("localhost","?","?","?");
$conn->set_charset('utf8mb4'); 

$sql="INSERT INTO products(name,href,price,image_href) VALUES (?,?,?,?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ssss", $name,$href,$price,$img);
$stmt->execute();
echo $conn->insert_id;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы