相关疑难解决方法(0)

强制fputcsv为*all*字段使用Enclosure

当我使用fputcsv写一行到打开的文件句柄时,PHP会将一个封闭的字符添加到它认为需要的任何列,但是会留下没有这些外壳的其他列.

例如,您最终可能会得到这样的一行

11,"Bob ",Jenkins,"200 main st. USA ",etc
Run Code Online (Sandbox Code Playgroud)

如果没有将虚假空间附加到每个字段的末尾,是否有任何方法可以强制fputcsv始终用外壳包含列(默认为")"字符?

php csv fputcsv

37
推荐指数
3
解决办法
3万
查看次数

PHP将单引号添加到逗号分隔列表中

当我内爆我的数组时,我得到一个如下所示的列表:

qwerty, QTPQ, FRQO
Run Code Online (Sandbox Code Playgroud)

我需要添加单引号,如下所示:

'qwerty', 'QTPQ', 'FRQO'
Run Code Online (Sandbox Code Playgroud)

可以使用PHP完成吗?

php arrays string

14
推荐指数
4
解决办法
3万
查看次数

使用PHP在CSV文件中用双引号括起每个字段?

我需要使用PHP将所有字符串和数字用双引号放在CSV文件中.

如何在双引号内的所有数据中从PHP创建CSV文件?

我正在使用此代码生成CSV - 我正在使用codeigniter框架

$array = array(
    array(
     (string)'XXX XX XX',
     (string)'3',
     (string)'68878353',
     (string)'',
     (string)'xxxx@xxxx.xxx.xx',
    ),
);

$this->load->helper('csv');
array_to_csv($array, 'blueform.csv'); 
Run Code Online (Sandbox Code Playgroud)

输出我得到:

"XXX XX XX",3,68878353,,xxxx@xxxx.xxx.xx
Run Code Online (Sandbox Code Playgroud)

预期产出:

"XXX XX XX","3","68878353","","xxxx@xxxx.xxx.xx"
Run Code Online (Sandbox Code Playgroud)

array_to_csv的代码

if (!function_exists('array_to_csv')) {
    function array_to_csv($array, $download = "") {
        if ($download != "") {   
            header('Content-Type: application/csv');
            header('Content-Disposition: attachement; filename="' . $download . '"');
        }

        ob_start();
        $f = fopen('php://output', 'w') or show_error("Can't open php://output");
        $n = 0;
        foreach ($array as $line) {
            $n++;
            if (!fputcsv($f, $line)) {
                show_error("Can't write line $n: …
Run Code Online (Sandbox Code Playgroud)

php csv codeigniter

10
推荐指数
2
解决办法
9212
查看次数

mysqli bind_param用于字符串数组

我不能让这个工作.我现在已经花了很多时间.

这有效:

$mysqli = new mysqli("localhost", "root", "root", "db");
if(!$mysqli || $mysqli->connect_errno)
{
    return;
}
$query_str= "SELECT name FROM table WHERE city IN ('Nashville','Knoxville')";
$query_prepared = $mysqli->stmt_init();
if($query_prepared && $query_prepared->prepare($query_str))
{       
    $query_prepared->execute();
Run Code Online (Sandbox Code Playgroud)

但是我不能让它与这样的bind_param一起工作:

$query_str= "SELECT name FROM table WHERE city IN (?)";
$query_prepared = $mysqli->stmt_init();
if($query_prepared && $query_prepared->prepare($query_str))
{       
    $cities= explode(",", $_GET['cities']);
    $str_get_cities=  "'".implode("','", $get_cities)."'"; // This equals 'Nashville','Knoxville'

    $query_prepared->bind_param("s", $cities);
    $query_prepared->execute();
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

我也试过call_user_func_array,但似乎无法使语法正确.任何帮助将不胜感激!

编辑:我已经严格尝试了moskito-x的建议和大量的例子列在这里以及其他在SO和随机网站上,没有任何作品.我认为问题可能是PHP 5.4,这就是我的MAMP现在设置的.

php mysqli bindparam

6
推荐指数
3
解决办法
3万
查看次数

标签 统计

php ×4

csv ×2

arrays ×1

bindparam ×1

codeigniter ×1

fputcsv ×1

mysqli ×1

string ×1