我有一個php腳本,它接受幾個參數並調用mysql更新。其中一個參數是一個整數。我在執行mysql update語句之前添加了斷點,並使用了var_dump。它顯示int(5),但是當我在數據庫中驗證結果時,更新列的值顯示爲2016.該列被定義爲INT(11)。我試圖將列更改爲tinyint,更新後的值變爲127.誰能告訴我我做錯了什麼?mysql更新語句更改了我的參數值
<?php
header('Location: upd_shpsts.php?shpid=87&stsdesc=abc&stsdate=02/10/2016 4:42PM&ctyid=5');
?>
function UpdShpSts($shpid, $stsdesc, $stsdate, $ctyid) {
$ctyid=intval($ctyid);
var_dump($ctyid);
$usrid = $_SESSION['usr_id'];
$pkgs = array();
$pkgs_query = mysql_query("SELECT pkgid FROM pkg WHERE shpid='$shpid'") or die(mysql_error());
while ($pkg_rows = mysql_fetch_assoc($pkgs_query)) {
$pkgs[] = array(
'pkgid' => $pkg_rows['pkgid']
);
}
if (!empty($pkgs)) {
foreach ($pkgs as $pkg) {
$pkgid = $pkg['pkgid'];
$timestamp = strtotime($stsdate);
$statusdate = date("Y-m-d H:i:s", $timestamp);
mysql_query("INSERT INTO pkgsts (pkgid, stsdesc, stsdate, ctyid, lastchgby, lastchgat) VALUES('$pkgid', '$stsdesc', '$ctyid', '$statusdate', '$usrid', now())") or die(mysql_error());
}
}
}
顯示你的代碼,請(包括PHP和SQL查詢)。您可以通過點擊原始帖子上的_edit_來完成此操作。 – CodeGodie
您能顯示相關代碼嗎? – fusion3k
我不是真正理解你的問題,但一個INTERGER總是一個INTERGER的大小沒有儲存價值的影響。你可以在結果中使用填充「0」的大小。您可以在手冊下的數據類型https://mariadb.com/kb/en/mariadb/data-types/中找到它。所以當你使用TINYINT時,你的值被截斷。 –