PHP中的多个SQL语句

时间:2012-08-21 02:59:38

标签: php sql

只是问在PHP中是否可以在1函数中执行sql statment。

我的sql真正做的是从我的数据库中的三个表中获取数据。 我目前不确定使用什么方法。内部联接会弹出它但我忘记了正确的语法。所以我在想这个。

$qry_display = "SELECT student_id,
section_id,level,photo,address,father_occupation,father_phone,father_company,mother_occupation,
mother_phone,mother_company 
from tbl_er 
where student_id='$id' AND level="3rd Year"";

以上陈述将从tbl_er检索信息,这些将是学生的历史记录。

$qry_display = "SELECT fname,
sex,
lname,
mname,
birth_date,
birth_place,
address,
father,
father_degree,
mother,
mother_degree,
from tbl_enroll where student_id='$id'";

上述语句将从tbl_enroll中检索部分信息,这些将是学生核心不可更改的数据。第一个语句也有“section_id”要检索。所以我的想法是检索该值,以便它将用于最后一个sql。

$qry_display = "SELECT section_name,adviser_id,schoolyr 
from tbl_section 
where student_id='$id' AND section_id='$sid'";

我关于如何获取section_id的想法是在我要放的最后一个语句之前。

    $sid= section_id  (I am unsure if this will work.)

此语句也会在一个函数中触发所有三个语句吗?

        $sql_display = mysql_query($qry_display) or die (mysql_error());

谢谢,感谢任何反馈。

2 个答案:

答案 0 :(得分:0)

我似乎记得MySQL系列函数不能在单个mysql_query操作中处理多个语句。它将执行第一个语句,然后以静默方式丢弃以下语句,即使您将它们包装在事务中也是如此。

也就是说,MySQL系列已被弃用 - you should be using MySQLi用于2012年的新项目。;)

答案 1 :(得分:0)

这有很多错误,你可能无法得到你想要的东西,即使你弄清楚了错误,所以让我们开始把它写成一个连贯的查询与左连接(好的调用顺便说一句)。 / p>

$qry_display = "SELECT
            a.student_id, a.section_id, a.level, a.photo, a.address, a.father_occupation, a.father_phone, a.father_company, a.mother_occupation, a.mother_phone, a.mother_company,
            b.fname, b.sex, b.lname, b.mname, b.birth_date, b.birth_place, b.address, b.father, b.father_degree, b.mother, b.mother_degree,
            c.section_name, c.adviser_id, c.schoolyr
            FROM tbl_er AS a
            LEFT OUTER JOIN tbl_enroll AS b ON a.student_id = b.student_id
            LEFT OUTER JOIN tbl_section AS c ON a.section_id = c.section_id
            WHERE a.student_id=".$id." AND a.level='3rd Year'";

最后一次加入并不关心student_id,因为部分/顾问关系不依赖于学生。