php代码可以更新mysql数据库,但是不能插入

i34xakig  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(277)

我的数据库更新没有任何问题。在我当地的开发环境下,一个新的记录插入也没有问题。我已经尝试过多次更改mysql用户,因为我认为这可能与权限有关(也许这仍然是问题所在,我不知道)。我甚至创建了用户root并提供了正确的root密码:同样,我可以执行更新,但不能插入新的记录。这是我的代码,我缩短了(即去掉了大量的字段。它在本地工作,但在服务器上不工作)。
我使用的是ubuntu linux,16.04,PHP7

$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();
fcipmucu

fcipmucu1#

我的环境是macos和PHP7.1.12,MySQL5.6.21
添加代码:

$prep->execute();
// see if any error happend
var_dump($db->error_list, $db->error);

看看是否有错误发生。如果没有错误,那么结果应该是

array(0) {
}
string(0) ""
laik7k3q

laik7k3q2#

$username 必须先初始化。

//Call this first
$username = "atservertest";
//Then use bind_param
$prep->bind_param('s',$username);
falq053o

falq053o3#

解决了我自己的问题:
这是由严格的\u trans \u tables sql模式引起的。
打开phpmyadmin并转到“更多”选项卡,然后选择“变量”子菜单。向下滚动以查找sql模式。编辑sql模式并删除严格的\u trans \u表保存它。
我的本地phpmyadmin设置与新服务器上的phpmyadmin设置不同。。。注意,要进行上面的配置更改,我需要以根用户身份登录phpmyadmin。。。

相关问题