表单中有4个字段,其中2个字段为allow null,因此如果用户未填写这些字段,INSERT将失败,因为$mysqli->prepare
将返回false。
以下表格中的电子邮件地址和电话号码不是cumpolsary。
那么,有没有办法发送空白字段并仍然插入其他填充字段的数据。
function newcontact()
{
$mysqli = connect();
$query = "INSERT INTO contacts( first_name, last_name, email, phone_no, contact_by )Values( '$this->first_name', '$this->last_name',
'$this->email', $this->phone, $this->user_id)";
//die( $query );
$stmt = $mysqli->prepare( $query );
if( $stmt->execute() )
{
$mysqli->close();
return true;
}
}
答案 0 :(得分:2)
Values('', '', '', , )
肯定是错误。在mysqli_connect
之前添加此行mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
并使您的查询实际使用占位符和绑定参数。
一切都会奏效。但如果没有,您将收到确切错误的通知。
答案 1 :(得分:0)
使用预准备语句时,不要将值放在查询中,而是提供placheholders而绑定参数。
http://php.net/manual/en/mysqli.prepare.php
如果要将值放在查询中,请使用函数query()
http://www.php.net/manual/en/mysqli.query.php