$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
答案 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