2016-07-12 5 views
1

У меня проблема с номером столбца столбца SQL Server, который не принимает более 5 цифр. 5 цифр или ниже, она работает хорошо, но выше 5 цифр, это вызывает ошибку:SQL Server: запрос вставки ошибки

xx.xx.xx.xx didn’t send any data.
ERR_EMPTY_RESPONSE

Пример - цитата номер 12345 работает нормально, но 123456 вызывает ошибку.

Я также изменил bindParam на bindValue в запросе, но не на результат.

Подключение:

try { 
    $proconn = new PDO("dblib:host=$servername;dbname=TableQuote;charset=UTF-8", $username, $password); 

    // set the PDO error mode to exception 
    $proconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} 
catch(PDOException $e) 
{ 
    echo "Connection failed" . $e->getMessage; 
} 

Variable данные:

//$quote_number="123456"; 
[quote_noumber] => '12345' 
[inside_sales] => 'Pat Zerphy' 
[outside_sales] => 'SEL102' 
[customer_code] => 'SEL101' 
[custome_name] => 'Selex Systems Inegrations' 
[customer_contact] => 'Bob Smith' 
[quote_details] => 'Misc coax cable assemblies. 
1/2" Superflex, 1/4" Superflex' 
[rna_location] => '1' 
[number_of_line_items] => '25' 
[created] => '1468291705' 

Вставить запрос:

try { 
    $prosql = $proconn->prepare("insert into dbo.QuoteRecord(quote_number,customer_code,customer_name,rna_location,inside_sale,outside_sale,customer_contact,quote_detail,number_of_line_items,created)VALUES(:quote_number,:customer_code,:customer_name,:rna_location,:inside_sale,:outside_sale,:customer_contact,:quote_detail,:number_of_line_items,:created)"); 

    $prosql->bindParam(':quote_number',$quote_number); 
    $prosql->bindParam(':customer_code',$customer_code); 
    $prosql->bindParam(':customer_name',$customer_name); 
    $prosql->bindParam(':rna_location',$rna_location); 
    $prosql->bindParam(':inside_sale',$inside_sale); 
    $prosql->bindParam(':outside_sale',$outside_sale); 
    $prosql->bindParam(':customer_contact',$customer_contact); 
    $prosql->bindParam(':quote_detail',$quote_detail); 
    $prosql->bindParam(':number_of_line_items',$number_of_line_items); 
    $prosql->bindParam(':created',$created); 

    $prosql->execute(); 
} 
catch (PDOException $e) { 
    print("Error connecting to SQL Server."); 
    die(print_r($e)); 
} 

типы данных:

Array 
(
    [TABLE_CATALOG] => TableQuote 
    [0] => proALPHA 
    [TABLE_SCHEMA] => dbo 
    [1] => dbo 
    [TABLE_NAME] => QuoteRecord 
    [2] => QuoteRecord 
    [COLUMN_NAME] => quote_number 
    [3] => quote_number 
    [ORDINAL_POSITION] => 2 
    [4] => 2 
    [COLUMN_DEFAULT] => 
    [5] => 
    [IS_NULLABLE] => YES 
    [6] => YES 
    [DATA_TYPE] => varchar 
    [7] => varchar 
    [CHARACTER_MAXIMUM_LENGTH] => 128 
    [8] => 128 
    [CHARACTER_OCTET_LENGTH] => 128 
    [9] => 128 
    [NUMERIC_PRECISION] => 
    [10] => 
    [NUMERIC_PRECISION_RADIX] => 
    [11] => 
    [NUMERIC_SCALE] => 
    [12] => 
    [DATETIME_PRECISION] => 
    [13] => 
    [CHARACTER_SET_CATALOG] => 
    [14] => 
    [CHARACTER_SET_SCHEMA] => 
    [15] => 
    [CHARACTER_SET_NAME] => iso_1 
    [16] => iso_1 
    [COLLATION_CATALOG] => 
    [17] => 
    [COLLATION_SCHEMA] => 
    [18] => 
    [COLLATION_NAME] => SQL_Latin1_General_CP1_CI_AS 
    [19] => SQL_Latin1_General_CP1_CI_AS 
    [DOMAIN_CATALOG] => 
    [20] => 
    [DOMAIN_SCHEMA] => 
    [21] => 
    [DOMAIN_NAME] => 
    [22] => 
) 
+0

Какая ошибка вы получаете кстати? – Rahul

+0

Либо у вас есть необходимая обратная связь, которую вы еще не опубликовали, или вы, вероятно, должны запустить некоторые тесты. Такие, как нарушение ограничений? Вставка недопустимых типов данных? Недействительные соединения и т. Д. Потому что SQL Server дает отличную обратную связь, если вы можете ее получить. –

ответ

1

Example - quote number - 12345 working fine but 123456 it giving error.

Если это так, то, скорее всего, это из-за определения размера столбца для столбца quote_number. Похоже, что это столбец VARCHAR, и если он все еще не так, вы, вероятно, установили его размер VARCHAR(5).

Опубликуйте описание или схему таблицы для таблицы dbo.QuoteRecord.