$ stmt 变量为null表示即使创建了到数据库的连接($ con),它也不包含我的查询。
致命错误:未捕获错误:在C:\ xampp \ htdocs \ WebServersAndroid \ includes \ DbOperations.php:24堆栈中的布尔值上调用成员函数bind_param()堆栈跟踪:#0 C:\ xampp \ htdocs \ WebServersAndroid \ v1 \ registerUser.php(12):DbOperation-> createUser('syed','1997')#1 {main}放在第24行的C:\ xampp \ htdocs \ WebServersAndroid \ includes \ DbOperations.php中
bind_param中发生错误,可能是因为没有查询来存储数据。请告诉我问题出在哪里,为什么$ stmt为空。谢谢
class DbOperation{
private $con;
function __construct(){
require_once dirname(__FILE__).'/DbConnect.php';
$db = new DbConnect();
$this->con = $db->connect();
}
function createUser($name,$usn){
$query = "INSERT INTO 'test_col'('name','usn') VALUES (?,?); ";
$stmt = $this->con->prepare($query);
echo $stmt;
if($stmt != null)
{
$stmt->bind_param("ss",$name,$usn);
if($stmt -> execute())
{
return true;
}else{
return false;
}
}
else{
echo "in else";
}
}
}
答案 0 :(得分:-1)
我认为这段代码会产生很多错误。
$query = "INSERT INTO 'test_col'('name','usn') VALUES (?,?); ";
values (?, ?)
希望以后绑定2个值。
这段代码
`$stmt->bind_param("ss",$name,$usn);`
绑定3个触发绑定错误的参数。
接下来,MySQL将使用单引号或双引号引起来的字符串解释为in documantation
因此,'test_col'('name','usn')
会导致错误,您应该使用`或仅保留表名和列名,而不要使用单引号(')来翻译表名,数据库名称和/或列名称转换为字符串而不是引用。