插入PHP字符串时,MySql执行数学计算

时间:2012-01-04 14:54:18

标签: php mysql

我有一个用于mysql数据库的php INSERT,我有一个字符串,比如“添加”该值,而不是只是将其插入到mysql表中。当我只是回显我得到的值'2012-03'这是一个到期日期,我必须以这种方式格式化。但是在数据库中它显示'2009',因此它会计算它。我究竟做错了什么?

这是插入...

<?php
$Last4CCN           = $_POST['CCN'];
$expiration         = $_POST['EXPDATE'];


if (!isset($_SESSION)) {
    session_start();
} 

if (!$conn) { 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("testing1", $conn);

$last4CCN = mysql_real_escape_string($last4CCN);
$expiration = mysql_real_escape_string($expiration);

$query1 = "
    INSERT INTO payment_profile_id (Last4CCN, CCNExpDate)
    VALUES ($Last4CCN, $expiration)";

if(mysql_query($query1,$conn))
    echo "Update profile_id successfully inserted.<br/>";
else
    echo "Update profile_id encountered an error.".mysql_error();

mysql_close($conn)

//$expiration = mysql_real_escape_string($expiration);

//echo $expiration;
?>

对于expdate

,MySQL值也是varchar(7)

2 个答案:

答案 0 :(得分:3)

尝试在日期字符串周围加上引号。您似乎将值插入为整数,因此mysql认为它是数学表达式而不是字符串'2012-03'

INSERT INTO payment_profile_id (Last4CCN, CCNExpDate)
     VALUES ($Last4CCN, '$expiration')

答案 1 :(得分:0)

您可能必须将MySQL类型设置为“date”http://dev.mysql.com/doc/refman/5.1/en/datetime.html

类型