Вопрос по SQL в PHP вставить
Овации,
Итак, у меня есть "родительская таблица", куда мне нужно вставить некоторые вещи.
"Родительская таблица" - файлы содержат
id_file id_cust - foreign key for idcust from table Customers register_date id_object - foreign key for idcust from table Objects
Таблица Клиенты
idcust cust_name address phone
объект таблицы
idobject name_object
Я создал HTML-форму для вставки нового файла, который содержит 2 поля со списком и дату регистрации
<pre><form method="post" action=""> <tr> <td>Customer name: </td> <td> <select name="cust_name"> <?php $sql = mysqli_query($conn, "SELECT * FROM customers"); while ($row = $sql->fetch_assoc()){ echo "<option value=\"cust_name1\">" . $row['cust_name'] . "</option>"; }?> </select></td></tr> <tr> <td>Register date</td> <td> <input type="date" name="register_date"/></td> </tr> <tr> <td>Object: </td> <td> <select name="object"> <?php $sql = mysqli_query($conn, "SELECT * FROM objects"); while ($row = $sql->fetch_assoc()){ echo "<option value=\"name_object1\">" . $row['name_object'] . "</option>"; }?> </select></td></tr> <tr><td colspan=2> <input name ="submit" type="submit" value="Add a new file"></td> </tr></form>
Что я уже пробовал:
Со вчерашнего дня я попробовал looooot запросов, это последний:
<?php $conn = mysqli_connect("localhost", "root", "", "testdb"); if ($conn -> connect_error){ die("Connection failed:". $conn-> connect_error); } if(!empty($_POST['submit'])){ $cust_name = $_POST['cust_name']; $register_date = date('Y-m-d',strtotime($_POST['register_date'])); $name_object =$_POST['name_object']; $sql = "INSERT INTO files VALUES ( (SELECT * FROM customers c WHERE c.cust_name = $cust_name), $register_date, (SELECT * FROM objects o WHERE o.name_object = $name_object) )"; $conn->query($sql); if($conn->error){ echo $conn->error; } else { $message= "We have added the file no. " .$conn->insert_id; } } ?>
Я пробовал с левым соединением, но безуспешно...
Не могли бы вы помочь мне с этим вопросом? Спасибо.
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
PHP: SQL-инъекция - руководство пользователя[^]