<?php
$sql="INSERT INTO answer_table (userName,questionOrder,questionAnswer)VALUES(?,?,?)";
$loginName=$_GET['testUser'];
$questionOrder=$_GET['questionOrder'];
$questionAnswer=$_GET['answer'];
$stmt=$conn->prepare($sql);
$stmt->bind_param('sss',$loginName,$questionOrder,$questionAnswer);
if($stmt->execute()){
echo '成功录入';
}else{
echo 'please insert again';
}
$conn->close();
?>
使用预处理prepare,必须要先写bind_param(),在定义里面的变量才行。
如有帮助,望点击我回答右上角【采纳】支持一下。
<?php
$sql="INSERT INTO answer_table (userName,questionOrder,questionAnswer)VALUES(?,?,?)";
$stmt=$conn->prepare($sql);
$stmt->bind_param('sss',$loginName,$questionOrder,$questionAnswer);
$loginName=$_GET['testUser'];
$questionOrder=$_GET['questionOrder'];
$questionAnswer=$_GET['answer'];
if($stmt->execute()){
echo '成功录入';
}else{
echo 'please insert again';
}
$conn->close();
?>
最简单的办法,var_dump 打印你的链接数据库,打印你的sql,吧sql放到数据库去执行 ,逐个去打印,看是哪里报错
你打印一下,你的这些参数有没有值。
这些页面上的值是从另一个页面的表单提交上来的,我都可以获取到的。前面的代码都没问题,就是向数据库插入数据就失败了
还是不行,我已经尝试了差不多5种录入方式。php号称最好的语言,应该没有这么复杂吧?是不是新建立的数据表的权限问题?
用tp5或者tp6框架操作,别整那个原生的 ,没用。
安装tp6 : composer create-project topthink/think tp 6.0.*-dev
谢谢,不过框架的学习成本更高,我只是一个医生,主要是想写点在线自动计算月子餐这样不需要太多功能的手机网站,或者小程序。框架的体量太大。但为什么数据库查询一点问题都没有,可是插入就不行?
query('set names utf8;'); $sql="INSERT INTO answer_table (userName,questionOrder,questionAnswer)VALUES('$loginName','$questionOrder','$questionAnswer')"; if($result = $conn->query($sql)){ echo '成功录入'; }else{ echo 'please insert again'; } $conn->close(); ?>用这个方式解决了,可能与mysql8.0有关,要设定下utf编码
<?php
$loginName=$_GET['testUser'];
$questionOrder=$_GET['questionOrder'];
$questionAnswer=$_GET['answer'];
$conn->query('set names utf8;');
$sql="INSERT INTO answer_table (userName,questionOrder,questionAnswer)VALUES('$loginName','$questionOrder','$questionAnswer')";
if($result = $conn->query($sql)){
echo '成功录入';
}else{
echo 'please insert again';
}
$conn->close();
?>