当我尝试在下面的代码段中插入行时,它会为 $ user_info_do-> get_first_name()抛出严格的标准警告,其中user_info_do是具有成员变量first_name的类。
ERROR: Strict standards: Only variables should be passed by reference
$query = "INSERT INTO user_info ( first_name ) VALUES (?);";
if( !($query_stmt = $this->m_db_connection->prepare($query))) {
return;
}
if( !$query_stmt->bind_param("s", $user_info_do->get_first_name() ) {
return;
}
请帮助我,这可能是什么原因。
答案 0 :(得分:1)
问题是bind_param
将变量绑定到预准备语句(当语句发送到DB时将提取它们的值),并且您尝试传递值< / em>($user_info_do->get_first_name()
的结果)。这就是您收到错误的原因:无法通过引用传递值。
将您的代码更改为......
$firstName = $user_info_do->get_first_name();
if( !$query_stmt->bind_param("s", $firstName ) ) {
return;
}
答案 1 :(得分:0)
$query_stmt->bind_param
要求所有参数都通过引用传递,因此您无法直接传递函数的返回值(而不是首先将其赋值给变量,即)。
mysqli : Strict Standards: Only variables should be passed by reference