我有一个困惑的问题,我似乎无法理解...我有两个SQL语句:第一个将信息从表单输入数据库。第二个从上面输入的数据库中获取数据,发送电子邮件,然后记录交易的详细信息问题是似乎单引号仅在第二个条目上触发MySQL错误!第一个实例可以正常工作,但是第二个实例触发mysql_error()。表单中的数据处理方式与表单中捕获的数据处理方式不同吗?查询1-这可以正常工作(并且不会转义单引号)$result = mysql_query("INSERT INTO job_log(order_id, supplier_id, category_id, service_id, qty_ordered, customer_id, user_id, salesperson_ref, booking_ref, booking_name, address, suburb, postcode, state_id, region_id, email, phone, phone2, mobile, delivery_date, stock_taken, special_instructions, cost_price, cost_price_gst, sell_price, sell_price_gst, ext_sell_price, retail_customer, created, modified, log_status_id)VALUES('$order_id', '$supplier_id', '$category_id', '{$value['id']}', '{$value['qty']}', '$customer_id', '$user_id', '$salesperson_ref', '$booking_ref', '$booking_name', '$address', '$suburb', '$postcode', '$state_id', '$region_id', '$email', '$phone', '$phone2', '$mobile', STR_TO_DATE('$delivery_date', '%d/%m/%Y'), '$stock_taken', '$special_instructions', '$cost_price', '$cost_price_gst', '$sell_price', '$sell_price_gst', '$ext_sell_price', '$retail_customer', '".date('Y-m-d H:i:s', time())."', '".date('Y-m-d H:i:s', time())."', '1')");查询2-输入带单引号的名称时,此操作失败(例如,O'Brien)$query = mysql_query("INSERT INTO message_log(order_id, timestamp, message_type, email_from, supplier_id, primary_contact, secondary_contact, subject, message_content, status)VALUES('$order_id', '".date('Y-m-d H:i:s', time())."', '$email', '$from', '$row->supplier_id', '$row->primary_email' ,'$row->secondary_email', '$subject', '$message_content', '1')");
3 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
您在串连中有几件事。
缺少正确的MySQL引号(
mysql_real_escape_string()
)潜在的自动“魔术报价”-检查您的gpc_magic_quotes设置
嵌入的字符串变量,这意味着您必须知道PHP如何正确找到变量
也有可能在第一个查询的参数中没有单引号的值。毕竟,您的示例是一个专有名称,似乎只有第二个查询正在处理名称。
添加回答
举报
0/150
提交
取消