如何在PHP中的变量中存储mysql查询

时间:2013-08-21 20:38:13

标签: php mysql

$value = mysql_query("SELECT max(student_id) FROM student_profile");
$stud_id = mysql_fetch_array($value);
COMMIT;
mysql_query("INSERT INTO course_batch (student_id, course_id, batch_id)
VALUES('$stud_id','$course_id','$batch_id')") or die (mysql_error());

我需要有关如何在student_profile表上获取max id并将其存储在course_batch表中的帮助。 student_id自动递增。 TIA

2 个答案:

答案 0 :(得分:0)

有很多选择。 您可以使用当前代码并像现在一样获取数组并正确使用结果,即

$stud_id['student_id']

编辑 - 试试这个

$value = mysql_query("SELECT max(student_id) AS StudId FROM student_profile");
$qryResultArray = mysql_fetch_array($value);
$stud_id = $qryResultArray['StudId'];

mysql_query("INSERT INTO course_batch (student_id, course_id, batch_id)
VALUES('$stud_id','$course_id','$batch_id')") or die (mysql_error());

如果您特别需要使用提交(无论出于何种原因,您还有其他我看不到的代码等),请告诉我。

以上是非常基本的,它不检查数据,如果有结果,并且根本没有安全性,所以sql注入不受保护(但是这个代码无论如何都不会很快工作,当时服务器更新他们的PHP)


或者你可以通过使用mysqli或PDO来大大提高你的安全性和可用性,以及将来证明你的代码,这两者都是一个学习曲线相当容易学习,并且一旦学会了比你现在编码的更难。 您现在使用的功能很快就会导致问题,并且需要在代码可以工作之前检查服务器上的PHP版本(这在任何情况下都不理想)

非常基本的PDO示例:

$db = new PDO(details here);

$stmt = $db->query('select id from student_profile etc');
$stud_id = $stmt->fetchColumn(0);

//then use $stud_id in your update/insert/etc

然后你只需检查结果是否为假(在其他健全性检查中,以确保您的代码是干净的并且所有结果都被计算在内) 你可以使用"按限制1"或者#34; max,无论

答案 1 :(得分:0)

$value = mysql_query("SELECT student_id FROM student_profile ORDER BY student_id DESC LIMIT 1");
$row = mysql_fetch_array($value);

$stud_id = $row['student_id'];

mysql_query("INSERT INTO course_batch (student_id, course_id, batch_id)
VALUES('$stud_id','$course_id','$batch_id')") or die (mysql_error());

这就是你想要的?

修改

阅读本文:The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead