2012-04-15 3 views
0

Я изо всех сил пытаюсь понять концепцию множественного запроса в PHP и должен делать что-то неправильно, но я не уверен, что. У меня есть данные, хранящиеся в сеансах, поступающих из других форм.Вставка данных в несколько таблиц

<?php 
    $conn=mysql_connect("database","username","password"); 
    mysql_select_db("host",$conn); 

    session_start(); 

    $insert_query=("INSERT INTO testone_tbl 
         (age,hours,flexibility,fastpaced,retailexp,workedus,conviction,permit,education) 
        VALUES 
         ('$age','$hours','$flexibility','$fastpaced','$retailexp','$workedus','$conviction,'$permit','$education') 
        INSERT INTO equality_tbl 
         (age,ethnic,disability) 
        VALUES ('$age','$ethnic'.'$disability')"); 

    mysql_multiquery($insert_query); 
?> 

Есть много других таблиц, которые нужно вставить, но не хотят «перегибать» вопрос с помощью ненужных повторов. Если кто-нибудь может объяснить, что я делаю неправильно, мы будем очень благодарны, спасибо заранее.

+1

Попытайтесь завершить поиск точками с запятой. Кроме того, какая ошибка? –

+0

«Неустранимая ошибка: вызов неопределенной функции mysql_multiquery() на равенстве.php в строке 139« Я добавил полуколоны, я не думал, что должен был, как и внутри insert_query. – PurpleSmurph

+0

Точки с запятой важны и на других языках :) –

ответ

2

Для multiquery работать, все запросы должны быть разделены точкой с запятой ;, так что в вашем случае:

$insert_query = " 
    INSERT INTO testone_tbl (age,hours,flexibility,fastpaced,retailexp, 
    workedus,conviction,permit,education) 
    VALUES ('$age','$hours','$flexibility','$fastpaced','$retailexp','$workedus', 
    '$conviction,'$permit','$education'); <--Semicolon 
    INSERT INTO equality_tbl 
    (age,ethnic,disability) 
    VALUES ('$age','$ethnic'.'$disability')"; 
+0

Убедитесь, что '<- Semicolon' на самом деле не указан в вашем запросе;) Здесь просто указывается один символ. –

0

попробовать это, удалить скобки и добавить точку с запятой между запросами

$insert_query=" 
    INSERT INTO testone_tbl (age,hours,flexibility,fastpaced,retailexp, 
    workedus,conviction,permit,education) 
    VALUES ('$age','$hours','$flexibility','$fastpaced','$retailexp','$workedus', 
    '$conviction,'$permit','$education'); 
    INSERT INTO equality_tbl 
    (age,ethnic,disability) 
    VALUES ('$age','$ethnic'.'$disability');"; 
+0

Привет, однако я все равно получаю «Неустранимая ошибка: вызов неопределенной функции mysql_multiquery() на равенстве.php в строке 139« Я добавил полуколоны. – PurpleSmurph

+0

вам нужно вызвать mysqli_multi_query(), также использовать mysqli_connect() и mysqli_selecet_db() –

0

Там нет такого понятия, как mysql_multiquery(), поэтому она возвращает это:

Fatal error: Call to undefined function mysql_multiquery() on...

Функция mysql_multiquery() не определена, а это значит, что ее не существует.

Вместо этого используйте mysqli_multi_query, но, следовательно, вы должны использовать более безопасные методы mysql i. Также попробуйте сделать его привычкой заканчивать запросы точкой с запятой (;).

// Create mysqli connection 
$conn = mysqli_connect("server", "user", "password", "database"); 

$query = "INSERT INTO testone_tbl 
      (age,hours,flexibility,fastpaced,retailexp,workedus,conviction,permit,education) 
      VALUES 
      ('$age','$hours','$flexibility','$fastpaced','$retailexp','$workedus','$conviction,'$permit','$education');"; 
$query .= "INSERT INTO equality_tbl 
      (age,ethnic,disability) 
      VALUES 
      ('$age','$ethnic'.'$disability');"; 

// Execute queries 
if(mysqli_multi_query($conn, $query)) 
    echo "Success!"; 
else 
    echo "Error";