【问题标题】:Database insertion is not working in sequence数据库插入未按顺序进行
【发布时间】:2017-03-21 00:02:28
【问题描述】:

我在表格中插入值,但它没有按顺序工作,请看截图:

代码:

$query = "insert into msgs values(NULL,'".$sender."','".$receiver."','".$message."','".$state."','".$time."')";
mysql_query($query);

【问题讨论】:

  • dont user mysql 因为 php 5.5.0 使用 mysqli_ 函数,所以它已被弃用
  • 我认为这是因为某些查询无法插入,这就是为什么你的自动增量到目前为止正在增加...尝试使用 PDO 而不是 mysql_* !
  • 在 phpMyAdmin 中你点击过任何列名吗?如果是这样,数据将按列排序并单独显示在那里。您可以在单击浏览链接后进行确认。它将显示查询,例如SELECT * FROM {YOUR_TABLE_NAME} ORDER BY {SOME_COLUMN_COLUMN} {ASC/DESC}。您可以点击id列进行排序。
  • 这告诉你它们不是按顺序排列的?查看时间戳...它们是按顺序排列的,只是您没有在选择中订购它们。
  • @RST 如果你想使用自动增量值,你应该提供 null

标签: php database insertion


【解决方案1】:

首先不要用mysql,用mysqli。请检查:The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead

在插入自动增量时使用 null 很好(参见 Devon 的第一篇评论)。

查看您的 时间戳 (msg_time) 时,我可以看到 您的表格短于另一列,因为它们无论如何都不是有序的。这只是视觉上的缩短,不会影响条目结构,所以不用担心。

【讨论】:

  • 使用 null 很好:stackoverflow.com/questions/8753371/… 如 MySQL 所记录的
  • 为什么这应该是正确的了?我认为您的自动增量永远不会为空,那么为什么将其插入为空?
  • 因为当您在自动增量列上指定NULL0 时,MySQL 会自动忽略您发送的值。如果您没有在插入语句中定义列,则这是必需的。
  • 好吧,离我很近,我会更新我的答案。谢谢,祝德文郡有美好的一天。
  • 不同之处在于他们的插入语句没有说明列,因此如果没有NULL,查询将失败(插入错误值),因为它会认为$sender 将是id .
猜你喜欢
  • 1970-01-01
  • 2016-04-07
  • 2021-06-12
  • 2022-06-29
  • 1970-01-01
  • 2013-12-18
  • 1970-01-01
  • 2018-04-17
  • 1970-01-01
相关资源
最近更新 更多