0

下午的天才,希望你能帮忙。这是在我添加上传图片之前插入到表 Twitch 和 Birds 中的,现在唯一有效的部分是图片上传。这是非常简单的代码,但无法弄清楚为什么它不添加。

另外,一旦 TWITCH 表工作,我如何从 TWITCH 表中获取自动增量 ID。提前致谢。

<?php
session_start();
include ('dbconnect.php');

//Set Variables from Form
$species =($_POST['Species']);
$age =($_POST['Age']);
$sex =($_POST['Sex']);
$location =($_POST['Location']);
$date_seen = date("Y-m-d");
$time_seen =($_POST['Time']);
$twitch =($_POST['Comments']);
//$twitch_id=(". mysql_insert_id()");

 //Insert Into Birds table
 $query1 = "INSERT INTO Birds (Species, Age, Sex, Location, Date_Seen, Time_Seen,     Comments) VALUES
  ( '$species', '$age', '$sex', '$location', '$date_seen', '$time_seen', '$twitch')";
 result1 = mysqli_query($conn, $query1);

 //Insert into Twitch table
  query2 = "INSERT INTO Twitch (Twitch_ID, Twitch) VALUES( 'NULL', '$twitch')";
 $result2 = mysqli_query($conn, $query2);

 // Validate and upload image file
 if ( !preg_match( '/gif|png|x-png|jpeg/', $_FILES['userFile']['type']) ) {
  die('<p>Only browser compatible images allowed</p></body></html>');
 } else if ( strlen($_POST['altText']) < 9 ) {
  die('<p>Please provide meaningful alternate text</p></body></html>');
 } else if ( $_FILES['userFile']['size'] > 1116384 ) {
 die('<p>Sorry file too large</p></body></html>');

 // Connect to database
 } else if ( !($conn=mysqli_connect($host, $username, $password)) ) {
  die('<p>Error connecting to database</p></body></html>');
 } else if ( !(mysqli_select_db($conn, $db_name)) ) {
  die('<p>Error selecting database</p></body></html>');

 // Copy image file into a variable
 } else if ( !($handle = fopen ($_FILES['userFile']['tmp_name'], "r")) ) {
   die('<p>Error opening temp file</p></body></html>');
 } else if ( !($image = fread ($handle, filesize($_FILES['userFile']['tmp_name']))) ) {
  die('<p>Error reading temp file</p></body></html>');
} else {
  fclose ($handle);

 // Commit image to the database
   $image = mysqli_real_escape_string($conn, $image);
   $alt = htmlentities($_POST['altText']);
   $query3 = 'INSERT INTO Image (Image_Name, Image_Type, Description, Image) VALUES ("' . $_FILES['userFile']['type'] . '","' . $_FILES['userFile']['name']  . '","' . $alt  .    '","' . $image . '")';
  if ( !(mysqli_query($conn, $query3)) ) {
     die('<p>Error writing image to database</p></body></html>');
    } else {
    header ("Location: TwitchWall.php");
  }
}
?>
4

4 回答 4

0

如果您使用的是“mysqli”,请尝试:

$last_id = mysqli::$insert_id;

否则,使用“mysql”,使用:

$last_id = mysql_insert_id();

虽然,旧的 'mysql' 方法已被弃用
见这里: http: //php.net/manual/en/function.mysql-insert-id.php

于 2013-11-13T12:39:18.110 回答
0

使用 mysql_insert_id() 获取插入的记录 ID。但是 mysql_* 所有函数都已弃用,因此请使用 mysqli_insert_id() 或 PDO::lastInsertId()。

于 2013-11-13T12:39:28.320 回答
0

使用mysqli_insert_id.

mysqli_insert_id() 函数返回由对具有 AUTO_INCREMENT 属性的列的表的查询生成的 ID。如果最后一个查询不是 INSERT 或 UPDATE 语句,或者修改后的表没有具有 AUTO_INCREMENT 属性的列,则此函数将返回零。

面向对象风格

$query = "INSERT INTO ...";
$con->query($query);
echo $con->insert_id;

程序风格

$query = "INSERT INTO ...";
mysqli_query($con, $query);
echo mysqli_insert_id($con);
于 2013-11-13T12:39:49.043 回答
0

要获取最后一个自动插入的 ID,您可以使用

mysqli_insert_id($conn);
于 2013-11-13T12:40:51.903 回答