【问题标题】:INSERT statement does not work [closed]INSERT 语句不起作用[关闭]
【发布时间】:2012-03-20 08:51:41
【问题描述】:
$p_item_details=$i->ProductItemDetail;
$in_product_details="insert into product_item_details(location_id,speial_description,special,introduction,inclusion,exclusion,additional_info,ticketing_details,commence,department_point,department_date,suppliedby,return_details,department_time,condition,hotel_list,hotel_pickup_instruction,itinerary) values('$id_tables','$p_item_details->SpecialDescription','$p_item_details->Special','$p_item_details->Introduction',' $p_item_details->Inclusions','$p_item_details->Exclusions','$p_item_details->AdditionalInfo','$p_item_details->TicketingDetails','$p_item_details->Commences','$p_item_details->DeparturePoint','$p_item_details->DepartureDate','$p_item_details->SuppliedBy','$p_item_details->ReturnDetails','$p_item_details->DepartureTime','$p_item_details->Conditions','$p_item_details->HotelList','$p_item_details->HotelPickupInstructions','$p_item_details->Itinerary')";
mysql_query($in_product_details,$con);

虽然与服务器的连接正确并且选择数据库正确,但语句插入不起作用我在我的数据库中没有找到插入

【问题讨论】:

  • 访问我的数据库时没有错误没有任何插入
  • speial_description 错字?
  • 我与服务器的连接并选择db正确
  • 你需要输出错误。请查mysql_error():il2.php.net/manual/en/function.mysql-error.php
  • 嗯? write echo mysql_error($con): 至少应该有一些输出。 speial_description 也是 special_description 的意思吗?

标签: php mysql


【解决方案1】:

最好使用“准备好的声明”,请参阅this 链接。

这样会发现很多错误并且是安全的。

【讨论】:

  • i add or die mysql 错误显示:您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'condition,hotel_list,hotel_pickup_instruction,itinerary) values('1','','0','T' 附近使用正确的语法
  • 我看到' $p_item_details->Inclusions' 在值前有一个空格。如果包含数字,那么这是有问题的。但我看到你解决了这一切。
【解决方案2】:

“条件”是 MySQL 的保留字。如果您必须将其用作列名,请将其用反引号 (`) 包装起来

编辑

并转义您计划存储在数据库中的任何字符串。这允许 db 处理实际字符串本身中的引号 (')。

正如 Joop 所建议的,使用准备好的语句可以避免这个问题。

如今,mysql 扩展几乎已被淘汰(除了网络上数以百万计的过时教程)。考虑迁移到 mysqli 或 PDO

【讨论】:

  • 哦,感谢这一点,但出现另一个错误您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,以了解在 near 's Basilica 使用的正确语法,并通过提前预订来插队。数字在第 1 行被限制为最大值
  • 我找到了使用 $tist=preg_replace("/[']/", "`",$tods); 的解决方案因为来自 xml 文件的数据有 '
  • 糟糕的解决方案....糟糕,糟糕的解决方案....不要为此使用 preg_replace...如果您必须使用 mysql,它有一个 mysql_escape_string() 函数可以正确执行此操作php.net/manual/en/function.mysql-escape-string.php
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-08
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
相关资源
最近更新 更多