我有以下代码
foreach ($_POST['courses'] as $course ) {
$sql1 = "SELECT id FROM `courses` where title='".$course."'";
$course_id = mysqli_query( $connection, $sql1 );
$sql2=mysqli_query($connection,"INSERT INTO `ett`.`course-teacher` (`courses_id` ,`teacher-id`) VALUES ('".$teacher_id."`,`".$course_id."`)"); }
课程是一个多选的html标签,我基本上试图选择所有已选择的课程。
但它给了我以下错误
捕获致命错误:无法将类mysqli_result的对象转换为第36行的C:\ wamp \ www \ ETT Logo \ Controlpanel \ uploadteacher.php中的字符串
请注意,第35行是上面代码中的第2行。
答案 0 :(得分:4)
mysqli_query()
会返回一个结果对象,而不仅仅是您想要的字段。您需要获取结果数据 - 只是隐式地将其转换为字符串将无效。
foreach ($_POST['courses'] as $course ) {
$sql1 = "SELECT id FROM `courses` where title='".$course."'";
$result = mysqli_fetch_assoc(mysqli_query( $connection, $sql1 ));
$result2 = mysqli_fetch_assoc(mysqli_query($connection,"INSERT INTO `ett`.`course-teacher` (`courses_id` ,`teacher-id`) VALUES ('".$teacher_id."`,`".$result['id']."`)"); }
答案 1 :(得分:2)
试试这个,你在哪里错过了一些引号,有些则在错误的地方。
foreach( $_POST['courses'] as $course )
{
$sql = "SELECT id FROM `courses` where title='".$course."'";
$course_id = mysqli_query( $connection, $sql );
}