Bon*_*nxy 2 mysql phpmyadmin php
在开始之前,我不是专业的 Web 开发人员。我是使用 google 和StackOverflow自学的。
所以我最近将我的网站从共享主机转移到了 VPS。
我的提供商将我的网站/文件移至我的新主机。两者都运行 cPanel。
我有一个脚本,它在我的旧主机上运行得非常好-
INSERT INTO `database`.`table`
(`UUID`, `UpdateDate`, `JoinDate`)
VALUES
('$uuid',NOW(),NOW())
ON DUPLICATE KEY UPDATE
`UpdateDate` = NOW()
Run Code Online (Sandbox Code Playgroud)
问题是它在我的新服务器上不再起作用。
我认为的问题是它没有更新或插入,因为没有更新该表中的所有列。
我创建了两个测试表,表 A 包含上面 UUID、UpdateDate、JoinDate 中的 3 列,第二个表 B 包含 UUID、用户名、UpdateDate、JoinDate 中的 4 列。
UUID 在两个表中都是唯一的和主要的。
知道为什么此查询不适用于表 B 吗?运行查询时是否必须插入/更新每个表列?这是我需要在主机上更改的 PHP 设置吗?
抱歉,如果我没有提供所有信息,这是我的第一个 DBSE 问题。
CREATE TABLE TestUserA`
( UUID varchar(40) NOT NULL,
UpdateDate datetime NOT NULL,
JoinDate datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
ALTER TABLE TestUser
ADD PRIMARY KEY (UUID),
ADD UNIQUE KEY UUID (UUID),
ADD KEY UUID_2 (UUID);
Run Code Online (Sandbox Code Playgroud)
知道为什么此查询不适用于表 B 吗?运行查询时是否必须插入/更新每个表列?
是的,UserName
是一NOT NULL
列,没有DEFAULT
值。因此,您需要为每一行提供一个值INSERT
。不为UPDATE
虽然,列可以被更新或没有,根据您的要求。
这是我需要在主机上更改的 PHP 设置吗?
不,与 PHP 无关。
我有一个脚本,它在我的旧主机上运行得非常好......
如果脚本在以前的服务器中运行良好,则在插入任一表时,表的传输方式不同。额外的列 - 除了脚本为其提供值的 3 列之外 - 将被定义为NULL
(因此它们会有一个DEFAULT NULL
),或者可能DEFAULT
在创建表时定义了一个属性。
另一种可能性 - 除了缺少DEFAULT
属性 - 是该表有一个INSERT
触发器UserName
,该触发器在插入时自动为 提供值,并且在传输数据库时没有正确复制触发器。
归档时间: |
|
查看次数: |
2120 次 |
最近记录: |