我有这个代码,我需要通过外键约束在两个表中填充一个新行。这个doe仅引用第一个插入,我需要识别生成的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“Last Protocol Number =”。$ id。“
”;
无法理解问题所在。
答案 0 :(得分:4)
您忘记运行查询和您混合了mysql_
和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);
仅供参考,此示例没有错误处理。你应该添加它。