我有一个令人困惑的问题,我似乎无法理解......我希望有人能指出我正确的方向......
我有两个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 …Run Code Online (Sandbox Code Playgroud) 我有一个脚本,使用以下代码生成一个csv文件:
header('Content-type: text/csv');
header('Content-Disposition: attachment; filename="'.date("Ymdhis").'.csv"');
print $content;
Run Code Online (Sandbox Code Playgroud)
$ content变量只包含以逗号分隔的字段,然后用."\n"结束.生成一个新行.
当我打开CSV文件看起来好像没什么但是,当我尝试使用该文件导入到外部程序(MYOB)它不承认结束线(\n)的角色和承担文本的一个长行.
当我在记事本中查看文件的内容时,行尾字符(\n)是一个小矩形框,看起来像字符代码0x7F.
如果我打开文件并将其重新保存在excel中,它将删除此字符并将其替换为正确的行尾字符,然后我可以导入该文件.
我需要在PHP中生成什么字符,以便记事本将其识别为有效的行尾字符?(\n)显然不能胜任这项工作.
我有一个名为send.email.php的页面,它发送一封电子邮件 - 非常简单的东西 - 我传递了一个订单ID,它创建了作业请求并将其发送出去.这在我开发它的上下文中使用时工作正常(使用javascript对URL进行AJAX调用并将order_id作为查询参数传递)
我现在正试图在另一个应用程序中重用完全相同的页面,但我使用php调用它file_get_contents($base_url.'admin/send.email.php?order_id='.$order_id).当我以这种方式调用页面时,$ _SESSION数组为空isempty()= 1.
这是因为我正在使用启动一个新会话,file_get_contents并且我在登录时存储在$ _SESSION中的值是不可用的?
- >感谢您的反馈.有意义的是,新呼叫无法访问现有会话......
但是新问题:
我现在得到:无法打开流:HTTP请求失败!尝试执行时:
$opts = array('http' => array('header'=> 'Cookie: ' . $_SERVER['HTTP_COOKIE']."\r\n"));
$context = stream_context_create($opts);
$contents = file_get_contents($base_url.'admin/send.sms.php?order_id='.order_id, false, $context);
Run Code Online (Sandbox Code Playgroud)
是的,如果我将其称为以下URL,则URL工作正常:(它只是不允许我访问会话)
$result file_get_contents($base_url.'admin/send.sms.php?order_id='.$order_id);
Run Code Online (Sandbox Code Playgroud) 我从我的网络服务器生成一个csv下载,为了安全起见,我用双引号括起了每个字段.
即
"Field1","Field2","Field3","Field4"
"row1_field1","row1_field2","row1_field3","row1_field4"
"row2_field1","row2_field2","row2_field3","row2_field4"
Run Code Online (Sandbox Code Playgroud)
问题是当在Excel中打开文件时,它不会删除所有引号...因此,某些字段显示为:row1_field1而其他字段显示为"row1_field2"
我没有做什么来确保excel剥离所有周围的引号?