加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

PHP Implode关联数组

发布时间:2020-05-27 05:25:25 所属栏目:PHP 来源:互联网
导读:所以我试图创建一个基于多维数组生成SQL查询字符串的函数. 例: function createQueryString($arrayToSelect, $table, $conditionalArray) {$queryStr = SELECT .implode(, , $arrayToSelect). FROM .$table. WHERE ;$queryStr = $que

所以我试图创建一个基于多维数组生成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注入,应该对所使用的数据库的值进行转义和/或引用.不要只是复制和粘贴;认为!

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读