procedural mysqli insert statement does not throw error, but no rows are inserted [duplicate]

I’m using this mysqli insert statement to dump some data in a table.

 $sql = "INSERT INTO searchqueue (guid, searchdata, type) VALUES (?, ?, ?)";
 $stmt = mysqli_prepare($conn,$sql);
 if ( !$stmt ) {
 die($conn->error);
 }
 else if ( !$stmt->bind_param("ssi", $guid, $dataArray, $type) ) {
 die($stmt->error);
 }
 else {
 mysqli_stmt_execute($stmt);
 mysqli_close($conn);
 echo $guid . " | " . $type . " | " . $data;
 }

I know the variables i’m binding are populated, as the echo response shows me the data (this page is called asynchronously from JS with post data).

I know the connnection string is correct, as it is used elsewhere for SELECT with no issues.
I’m getting no returned SQL errors… everything looks as if it is working correctly, however no rows are inserted into the table.

Column types in the db are varchar(32), text and int(11) respectively.

Can anyone see anything i’m doing wrong or point me in the right direction?

TIA