2016-10-14 5 views
-1

Как вставить типы varchar в базу данных mysqli, используя команду prepare и bind.Zero вставляется вместо значений [Insert Query Using Prepare statement]

Вот мой код для подготовки

$ins_filter = $con->prepare("INSERT INTO http_filter (filter_id , filter_name , created_by , src_ip_address_from , src_ip_address_to , src_mac_address , des_ip_address_from , des_ip_address_to , des_mac_address , website_name , content_type , timestamp_start , timestamp_end , sql_q) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); 

связать

$ins_filter->bind_param("isiiisiissssss",$filter_id,$filter_name, $creat_by,$sourceip,$destip,$smaf,$dia_sourceip,$dia_destip,$dmaf,$url_address,$content_type,$start_time, $end_time,$f_data_slash); 
$ins_filter->execute(); 

Схема:
filter_id является ИНТ
FILTER_NAME VARCHAR
creat_by является VARCHAR
SourceIP является VARCHAR Ввод ip-адрес li ка 10.10.10.1 в таблице БД возвращает 0 вместо IP-адрес
destip является VARCHAR
SMAF является VARCHAR
dia_sourceip является VARCHAR
dia_destip является VARCHAR
dmaf является VARCHAR
url_address является VARCHAR
content_type является VARCHAR,
start_time является VARCHAR
end_time является VARCHAR
f_data_slash является VARCHAR

Проблема:

При вставке, если вставлено текстовое значение, оно хранится в db, но при вставке ip-адреса, такого как 10.10.10.1, тогда 0 сохраняется в db.

bind_param поддерживает 4 типа
я Int
d двойной
s строка
б блоб

Что я должен использовать для поддержки значений с обоих чисел и алфавитов?

ответ

0

Как вставить типы VARCHAR в Mysqli базы данных с помощью подготовки и связать

Вы должны использовать «S» модификатор типа для этой цели.

Если этот модификатор используется, но 0 все еще вставлен, то ваша проблема не имеет отношения к подготовленным операциям. Это либо входные данные , либо тип поля в базе данных, которую вы должны проверить.