PHP、MySQL 查询已执行但表未更新

标签 php mysql sql database

我试图在页面加载时将一些数据插入到我的数据库中。

我目前拥有的:

    $servername = "localhost";
    $username = "xxx";
    $password = "xxx";
    $link = @mysql_connect($servername, $username, $password);
    mysql_select_db("download_time", $link);
    $sql = "INSERT INTO timestamp (id, time) VALUES ('1', 'testing');";
    mysql_query($sql, $link);
    mysql_close($link);

脚本运行得很好并且在任何地方都没有返回任何错误,我已经三次检查了连接,这也很好。通过 webmin 运行 INSERT INTO timestamp (id, time) VALUES ('1', 'testing'); 我能够很好地插入数据。

数据库结构:

CREATE TABLE `timestamp` (
  `id` int(10) NOT NULL DEFAULT '1',
  `time` varchar(246) DEFAULT '1',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

最佳答案

我发现一些错误:

1) 您正在使用 mysql_* API

2)您在架构创建中设置主键,但指定了默认值“1”,这是错误的,主键没有默认值,因为它们是自动递增的,您不能拥有两个相同的主键。

将架构创建更改为:

CREATE TABLE `timestamp` (
  `id` int(10) AUTO_INCREMENT PRIMARY KEY,
  `time` varchar(246) DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

以及对此的查询

$sql = "INSERT INTO timestamp (id, time) VALUES (null, 'testing');";

关于PHP、MySQL 查询已执行但表未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32799900/

相关文章:

php - 使用 ini_set() 的 PSR-1 兼容替代方案是什么?

mysql - 数组 在mysql程序中?

mysql - Mysql中的表分组

mysql - 仅当语句为 true 时才插入

sql - 用选择概率优化 T-SQL 查询

php - Mysql 数据在选择列表中的单引号后被截断

php - Windows Server 上的 PDOException

php - 更新了查询,显示 PDO 中的旧数据

mysql - 从 lev1 中删除所有 lev2 元素

php - 在php中显示最近上传的图像仅显示与提交到该die的其他数据相对应的单个图像