1

我需要从我的数据库表中检索自动增量字段。我尝试了以下但$id总是空的。

插入也有效。

我的表如下: idint(9) NOT NULL auto_increment,

id设置为主要

我究竟做错了什么?$conn = mysql_connect($host,$username,$password); mysql_select_db($database, $conn) or die("无法选择数据库"); 包括“update_activity.php”;updateActivity("登录", "休息时");

    $date = date("m/d/y"); $starttime = time();
    $sesh = $_SESSION['fname']." ".$_SESSION['lname'];
    $q = "INSERT INTO `breaks` (date, starttime, user) VALUES ('".$date."', '".$starttime."', '".$sesh."')";

    $query = mysql_query($q, $conn);
    $id = mysql_insert_id($conn);

    echo var_dump($id); exit;

编辑以显示我最近的尝试

4

5 回答 5

4

已阅读所有评论以及您对每条评论的回复。只有其中一种是可能的:

  1. 查询正常工作或
  2. 您没有获得生成的主键。

这两者永远不可能是真的。

定义,你怎么知道查询正在工作?你知道运行查询前后的最大PK吗?插入是从其他地方或线程甚至其他用户发生的吗?查询从代码或您的 mysql 客户端正常工作?

为了诊断问题,我们必须走正常的路。

  1. Dump your generated query before calling mysql_query.
  2. Wrap a error checking system around your query call so php can tell you if the query worked or not. I am sure just by these two steps you will realize the root cause of the problem.

    error_reporting(E_ALL);
    ini_set('display_errors','on');
    
    echo "before calling: $q\n";
    $query = mysql_query($q, $conn);
    if(!$query)
    {
        echo "Error:" . mysql_error($conn);
        return;
    }
    echo " generated id:" . mysql_insert_id($conn);
    
于 2013-03-30T13:36:51.273 回答
1

@adelphia 据我所知,执行的查询存在问题。请正确检查查询

于 2013-03-30T13:08:34.490 回答
0

从这里提取的代码中借用线索:

http://php.net/manual/en/function.mysql-insert-id.php

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');

mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d\n", mysql_insert_id());
?>
于 2013-03-30T13:06:37.460 回答
0

插入查询的问题

$q = "INSERT INTO `breaks` (date, starttime, user) 
      VALUES ('".$date."', 
              '".$starttime."',
              '".$_SESSION['fname'] $_SESSION['lname']."')";

试试这个

主要是您使用了大多数已弃用的“mysql”之类的东西,例如“mysql_insert_id()”

于 2013-03-30T13:06:39.313 回答
0

将您要传递的值存储到数组或变量中,并将其传递到插入查询中。它应该可以正常工作......

于 2013-03-30T13:21:11.563 回答