nyt1972 Ответов: 1

Php mysql PDO lastinsertid не работает


Привет,

У меня есть проблема, что мой код работает правильно, вставляет данные в базу данных, но сообщение об успехе после lastInsertId не работает.

Пожалуйста помочь.

Что я уже пробовал:

if(isset($_POST['submit']))
	{
		$class=$_POST['class'];
		$subject=$_POST['subject'];
		$lesson=$_POST['lesson'];
		$topic=$_POST['topic'];
      	$date = date('Y-m-d');
		$teacherid = $_SESSION['teacherid'];
		$teachername = $_SESSION['fullname'];
		$sql = "INSERT INTO homework (class,subject,lesson,topic,`date`,teacherid,teachername) VALUES(:class,:subject,:lesson,:topic,:date2,:teacherid,:teachername)";
		$query=$conn->prepare($sql);
        $query->bindparam(':class',$class,PDO::PARAM_STR);
        $query->bindparam(':subject',$subject,PDO::PARAM_STR);
        $query->bindparam(':lesson',$lesson,PDO::PARAM_STR);
        $query->bindparam(':topic',$topic,PDO::PARAM_STR);
      	$query->bindparam(':date2',$date,PDO::PARAM_STR);
        $query->bindparam(':teacherid',$teacherid,PDO::PARAM_INT);
      	$query->bindparam(':teachername',$teachername,PDO::PARAM_STR);
		$query->execute();
		$lastInsertId = $conn->lastInsertId();
		if($lastInsertId)
		{
			echo "<script language='text/javascript'>alert('Home work submitted successfully');</script>";
			echo "<script type='text/javascript'> document.location = 'index.php'; </script>";
		}
	}

Richard MacCutchan

Каково значение, возвращаемое $conn->lastInsertId() и вставил $lastInsertId когда этот код запускается?

nyt1972

Я попробовал это сделать, но оно даже не выполняется.

$lastInsertId = $conn->lastInsertId();
эхо "". $lastInsertId ."";

Richard MacCutchan

Это звучит не совсем правильно. Вам нужно будет сделать некоторую отладку, чтобы выяснить, что происходит.

nyt1972

В отладке он выполняет строки, но не предупреждает сообщение.

1 Ответов

Рейтинг:
8

Luc Pattyn

lastInsertId () - это метод, который применяется к объекту PDO, а не к соединению...
проверьте документацию!

:)