-3

外部キー制約を使用して、2 つのテーブルに新しい行をフォームから入力する必要があるこのコードがあります。これは最初の挿入のみを参照しており、関連するテーブルに使用するために生成された last_id を特定する必要があります。しかし、$last_id は、新しいレコードが作成されているにもかかわらず、常にゼロを返します。

   //Connect to Database 
 $con=mysqli_connect($db_host,$db_username,$db_pass,$db_name); 
 if (mysqli_connect_errno())
   {
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
   }
// Database connesso

// Devo inserire il record in Documents prima perché é quello che genera la Primary Key

 $sql=" INSERT INTO Documents (doc_name, doc_type, doc_manager, doc_pointer) VALUES ('$upload_name','Privacy','Agente di riferimento','$pic')";
 $last_id = mysql_insert_id();
 Echo "Last Protocol Number =".$last_id."<br>";

完全に同様のコードは別のスクリプトで完全に機能するため、php バージョンの問題ではありません。

//データベースに情報を書き込みます mysql_query("INSERT INTO documents(doc_name,doc_type,doc_manager,doc_pointer) VALUES ('$name', '$type', '$manager', '$pic')") ; $id = mysql_insert_id(); Echo "最後のプロトコル番号=".$id."
";

問題がどこにあるのか理解できません。

4

1 に答える 1

4

クエリを実行するのを忘れて、APImysql_mysqli_APIを混在させた

$sql=" INSERT INTO Documents (doc_name, doc_type, doc_manager, doc_pointer) VALUES ('$upload_name','Privacy','Agente di riferimento','$pic')";
mysqli_query($con, $sql);
$last_id = mysqli_insert_id($con);

参考までに、この例にはエラー処理がありません。追加する必要があります。

于 2014-02-12T15:21:10.293 に答える