将数据插入到多个表中

问题描述:

我很努力地在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

试着用分号结束查询。另外,错误是什么? – 2012-04-15 14:43:49

+0

“致命错误:调用139行上的equality.php中的未定义函数mysql_multiquery()”我添加了分号,我不认为必须这样做,因为它位于insert_query中。 – PurpleSmurph 2012-04-15 15:03:15

+0

分号在其他语言中也很重要:) – 2012-04-15 15:05:57

对于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

确保“ 2012-04-15 14:57:53

试试这个,取出支架并添加查询之间以分号

$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()在139行上的equality.php”我已经添加了分号。 – PurpleSmurph 2012-04-15 15:11:11

+0

你需要调用mysqli_multi_query(),同样使用mysqli_connect()和mysqli_selecet_db() – 2012-04-15 15:12:28

有没有这样的事情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";