【问题标题】:mysql insert query inserts zeros with some valuesmysql插入查询用一些值插入零
【发布时间】:2014-06-21 04:38:39
【问题描述】:

我是 php 和 mysql 的初学者,我正在尝试编写代码以将值插入表中。问题是像$upval$aday这样的一些变量被正确插入,但是$course$chour被插入为零,请注意我在插入查询和回显之前回显了($course$chour)打印正确的值(不是零)。

$res1=mysql_fetch_object($result1);
$course =$res1->cid;
$result2= mysql_query("select thoure from $tbl_name3 where cid='$course'");
$res2=mysql_fetch_object($result2);
$chour =$res2->thoure;
$sql ="insert into $tbl_name2 (SID,Cid,Tid,Adate,Ahoure) values ('$upval','$course','2','$aday','$chour')";
$result = mysql_query($sql);

我也尝试了另一种方式来编写查询,但同样的问题

$sql ="insert into $tbl_name2 (SID,Cid,Tid,Adate,Ahoure) values ('$upval','".$res1->cid."','2','$aday','".$res2->thoure."')";

【问题讨论】:

  • 你应该在输入变量后打印出$sql。答案将(可能)显而易见。
  • $course$chour 是数字还是字符串?相应的表列是否可以处理您插入的数据?如果您尝试在int 字段中输入string,它将输入为0
  • @Gordon Linoff 将 $sql=insert 打印到缺席 (SID,Cid,Tid,Adate,Ahoure) 值 ('65','','2','2014-05-06', '')
  • @Mark M cid 字段是 int(11) 和 $course 值从另一个表中的字段 cid 返回,它具有相同类型 int(11)

标签: php mysql insert


【解决方案1】:

这是你的 SQL 语句:

$sql=insert into absent (SID, Cid, Tid, Adate, Ahoure)
     values ('65','','2','2014-05-06','')

如果Cid 被插入为0,那是因为Cid 是数字类型(可能是某种整数)并且字符串被转换为数字。因此,''0 一样被插入到一个数字中。为什么值设置为空字符串,我不知道。

【讨论】:

  • 我在插入查询之前回显 $course=26 和 $chour=2
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-07
  • 1970-01-01
  • 2012-12-16
  • 2021-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多