2013-08-01 32 views
-1

有時候,datatype可能是不必要的行爲。mysql列數據類型錯誤輸入問題

如果我在TINYINT列中插入超過4位數字的數據,它會插入255超出範圍的警告。

如果我想在FLOATUPDATEINSERT字符串值,它使0

但是當我嘗試改變unsigned datatype負數,查詢不被執行。

我的問題是爲什麼不停止查詢當不匹配datatype所有的時間。有任何想法停止查詢這種類型的情況?

+7

其發送到數據庫之前正確驗證您的數據?本手冊清楚地說明了每種數據類型的限制,如果您嘗試向其中插入錯誤的數據,則應首先驗證數據。 – Prix

回答

1

要做到這一點,您需要使用您正在使用的程序語言手動添加錯誤檢查。因爲一旦數據要到數據庫,它是「詢問」

實例的方式來do error check with PHP

<?php 
    $mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 

    /* check connection */ 
    if ($mysqli->connect_errno) { 
     printf("Connect failed: %s\n", $mysqli->connect_error); 
     exit(); 
    } 

    if (!$mysqli->query("SET a=1")) { 
     printf("Errormessage: %s\n", $mysqli->error); 
    } 

    /* close connection */ 
    $mysqli->close(); 
    ?> 

希望它能幫助:)

+0

謝謝。但你不知道我使用什麼編程語言? – Imran

+1

@coder,您可以將其添加到您的問題中。 –