PHP Implode关联数组

前端之家收集整理的这篇文章主要介绍了PHP Implode关联数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我试图创建一个基于多维数组生成SQL查询字符串的函数.

例:

function createQueryString($arrayToSelect,$table,$conditionalArray) {
$queryStr = "SELECT ".implode(",",$arrayToSelect)." FROM ".$table." WHERE ";
$queryStr = $queryStr.implode(" AND ",$conditionalArray); /*NEED HELP HERE*/
return $queryStr;
}

$columnsToSelect = array('ID','username');
$table = 'table';
$conditions = array('lastname'=>'doe','zipcode'=>'12345');
echo createQueryString($columnsToSelect,$conditions); /*will result in incorrect sql Syntax*/

正如你所看到的那样,我需要第三行的帮助,因为它正在打印

SELECT ID,username FROM table WHERE
lastname AND zipcode

但它应该是打印

SELECT ID,username FROM table WHERE
lastname = ‘doe’ AND zipcode = ‘12345’

实际上并没有打破一个多维数组. $条件是一个关联数组.

只需在函数createQueryString()中使用foreach循环.这样的事情应该工作,请注意它是未经测试的:

$terms = count($conditionalArray);
foreach ($conditionalArray as $field => $value)
{
    $terms--;
    $queryStr .= $field . ' = ' . $value;
    if ($terms)
    {
        $queryStr .= ' AND ';
    }
}

注意:为了防止sql注入,应该对所使用的数据库的值进行转义和/或引用.不要只是复制和粘贴;认为!

猜你在找的PHP相关文章