Использование «Выбрать» в выражении «Вставить» в MYSQL с PHP - PullRequest
0 голосов
/ 12 июня 2018

Я создал форму, которую я связываю с PHP.Мне нужно, чтобы номер внешнего ключа совпадал с идентификатором другой таблицы.

Нет проблем извлечения данных из формы, и я проверяю это в сеансе ошибок.Также нет проблем с подключением внешнего ключа в базе данных.

Однако оператор Select не работает.Это о синтаксисе в операторе вставки?Спасибо.

$Connection=mysqli_connect('localhost','root','','databasename'); 

$Query="INSERT INTO musteri_ekle(tarih,musteri_ismi,urun_id) 
VALUES('$Now','$Musteri_ismi',(SELECT urun_id from urun_ekle WHERE urun_ismi='$Urun_ismi'))";

$Execute=mysqli_query($Connection,$Query);

        if($Execute){

            $_SESSION["SuccessMessage"]= "Müşteri Eklendi.";
            redirect_to("musteri_ekle.php");


} else {

     $_SESSION["ErrorMessage"]= $Urun_ismi." -- ".$Musteri_ismi;
     redirect_to("musteri_ekle.php");
        }
}

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Альтернативный синтаксис

$ Query = "INSERT INTO musteri_ekle SET tarih = '$ Now', musteri_ismi = '$ Musteri_ismi', urun_id = (ВЫБРАТЬ urun_id из urun_ekle WHERE urun_ismi = '$ Urun_ismi');

Этот тип проблемы обсуждается здесь MySQL INSERT INTO ... VALUES и SELECT

0 голосов
/ 12 июня 2018

Вы не можете использовать select внутри values.

Измените свой код с

$Query="INSERT INTO musteri_ekle(tarih,musteri_ismi,urun_id) 
VALUES('$Now','$Musteri_ismi',(SELECT urun_id from urun_ekle WHERE urun_ismi='$Urun_ismi'))";

на ниже:

$Query="INSERT INTO musteri_ekle(tarih,musteri_ismi,urun_id) 
SELECT '$Now','$Musteri_ismi',urun_id from urun_ekle WHERE urun_ismi='$Urun_ismi'";
...