我的数据库更新没有任何问题。在我本地的开发环境中,新记录插入也没有问题。我曾多次尝试更改我的 MySQL 用户,因为我认为这可能与权限有关(也许这仍然是问题,我不知道)。我什至已经创建了 root 用户并提供了正确的 root 密码:同样,我可以执行更新,但没有新记录插入。这是我缩短的代码(即删除了大量字段。它在本地工作,但不在服务器上工作)。
我使用的是 Ubuntu Linux,16.04,PHP 7
$message = '';
$db = new mysqli('localhost', 'root', 'notrealpword', 'mydatabase');
if ($db->connect_error){
$message = $db->connect_error;
}else{
// echo $message ;
}
$prep = $db->prepare("INSERT INTO users (userid, username) VALUES
('0',?)");
//Now, you can bind some parameters.
$prep->bind_param('s',$username);
$username = "atservertest";
$prep->execute();
$numaffected = $prep->affected_rows ;
echo $numaffected;
// echo $numaffected . " row(s) affected." ;
$prep->close();
最佳答案
解决了我自己的问题:
这是由 STRICT_TRANS_TABLES SQL 模式引起的。
打开 phpmyadmin 并转到“更多”选项卡并选择“变量”子菜单。向下滚动找到 sql 模式。编辑 sql 模式并删除 STRICT_TRANS_TABLES 保存。
我的本地 phpmyadmin 设置与我的新服务器上的 phpmyadmin 设置不同。 ...请注意,要进行上述配置更改,我需要以 root 身份登录 phpmyadmin ...
关于PHP代码可以更新MySQL数据库,但不能插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48144211/