我的PHP代码可以更新mysl数据库但不能插入

时间:2018-01-08 04:24:53

标签: php mysql insert

我对数据库的更新没有任何问题。在我的本地开发环境中,新的记录插入也没有问题。我曾多次尝试更改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();

3 个答案:

答案 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 ...