此问题在此处已有答案:
When to use single quotes, double quotes, and backticks in MySQL(13个答案)
What to do with mysqli problems? Errors like mysqli_fetch_array(): Argument #1 must be of type mysqli_result and such(1个答案)
四年前就关门了。
$stmt变量为空意味着它不包含我的查询,即使创建了到数据库的连接($con)。
致命错误:未捕获的错误:在C:\xampp\htdocs\WebServersAndroid\includes\DbOperations中的布尔值上调用成员函数bind_param()。(12)您可以在这里找到您想要的页面。在第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";
}
}
}
1条答案
按热度按时间hkmswyz61#
我认为这段代码会产生很多错误。
$query = "INSERT INTO 'test_col'('name','usn') VALUES (?,?); ";
values (?, ?)
预期稍后会系结2个值。而这段代码
绑定3个在绑定中触发错误的参数。
接下来,MySQL将单引号/双引号的使用解释为字符串文字,如in documantation所示
因此,
'test_col'('name','usn')
会导致错误,您应该使用'或只保留表和列的名称,而不是使用单引号('),它会将表名、数据库名和/或列名转换为字符串而不是引用。