我对数据库的更新没有任何问题。在我的本地开发环境中,新的记录插入也没有问题。我曾多次尝试更改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();
答案 0 :(得分:0)
$username
必须先进行初始化。
//Call this first
$username = "atservertest";
//Then use bind_param
$prep->bind_param('s',$username);
答案 1 :(得分:0)
它有效,我的环境是MacOS和PHP 7.1.12,MySQL 5.6.21
添加代码:
$prep->execute();
// see if any error happend
var_dump($db->error_list, $db->error);
查看是否发生任何错误。 如果没有错误,那么结果应为
array(0) {
}
string(0) ""
答案 2 :(得分:0)
修复了我自己的问题:
这是由STRICT_TRANS_TABLES SQL模式引起的。
打开phpmyadmin并转到更多选项卡并选择变量子菜单。向下滚动以查找sql模式。编辑sql模式并删除STRICT_TRANS_TABLES保存它。
我的本地phpmyadmin设置与我的新服务器上的phpmyadmin设置不同。 ...请注意,要进行上面的配置更改,我需要以root身份登录phpmyadmin ...