duanfen2349 2016-10-25 14:16
浏览 35
已采纳

php - 注意:数组转换为字符串

I am trying to compose a SQL query via php. But I get the notice mentioned in a pretty unusual way.

$i=0;
$SQL="";
$tableFieldsQueryFormat=array("hospitals"=>"(location LIKE '%@val%' OR phone_no LIKE '%@val%')","doctors"=>"doc_name LIKE '%@val%'","news"=>"title LIKE '%@val%'","diseases"=>"name LIKE '%@val%'","tips"=>"tip LIKE '%@val%'");
$tableName=array("hospitals","doctors","news","diseases","tips");
$query_str=str_replace("@val",trim("dummy"),$tableFieldsQueryFormat[$tableName[$i]]);
$SQL="SELECT * FROM $tableName WHERE $query_str AND isdeleted='0';"; // Notice is thrown here !!!

I have not treated the '$SQL' variable as an array in any part of the program, in fact I only declared and used it in the above snippet. What could be the reason behind this weird notice? I don't think I've made any syntax or logic errors.

  • 写回答

1条回答 默认 最新

  • drllqg2903 2016-10-25 14:22
    关注

    You are seeing this exception because $tableName is an array. When your string is being interpolated $tableName can not be converted to a string.

    Try this instead:

    $SQL = "SELECT * FROM " . explode(",",$tableName) . " WHERE $query_str AND isdeleted='0';";
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部