hecate hecate - 1 year ago 89
PHP Question

php - Notice: Array to string conversion in

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

$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%'");
$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.

Answer Source

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';";
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download