Php $stmt变量使用prepare函数包含null
$stmt变量为null表示即使创建了到数据库的连接($con),它也不包含我的查询 致命错误:未捕获错误:在C:\xampp\htdocs\WebServersAndroid\includes\DbOperations.php中调用布尔值上的成员函数bind_param()。php:24堆栈跟踪:#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为空。非常感谢。Php $stmt变量使用prepare函数包含null,php,Php,$stmt变量为null表示即使创建了到数据库的连接($con),它也不包含我的查询 致命错误:未捕获错误:在C:\xampp\htdocs\WebServersAndroid\includes\DbOperations.php中调用布尔值上的成员函数bind_param()。php:24堆栈跟踪:#0 C:\xampp\htdocs\WebServersAndroid\v1\registerUser.php(12):DbOperation->createUser('syed',1997')#1
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";
}
}
}
我认为这段代码会产生很多错误
$query=“插入到'test_col'('name','usn')值(?,);”代码>
值(?,)
要求稍后绑定2个值
而这个代码
`$stmt->bind_param("ss",$name,$usn);`
绑定触发绑定错误的3个参数
接下来,MySQL将单引号/双引号的使用解释为字符串文字,如前所述
因此,'test\u col'('name','usn')
会导致错误,您应该使用`或只保留表和列的名称,而不是使用单引号(”),它将表名、数据库名和/或列名转换为字符串而不是引用。查询中的'
应该是反勾号(`
)“$stmt变量为空”谢谢你,我建议你阅读文档。OP没有绑定三个参数。我很糟糕,我应该读一下。
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";
}
}
}