http://www.perlmonks.org?node_id=11106364


in reply to Re^3: Global symbol "$prepare" requires explicit package name
in thread Global symbol "$prepare" requires explicit package name

Indeed poj, it works now.

Could you tell me please, why does it need to have ? (I believe these question marks are those placeholders from the error message) in the prepare part? And why I could not run $dbh->execute("update $schema.$table set $date_col = $date_new where $where_col = 1;") or die; directly? In this particular code I donít need neither $sth handle for reuse nor the placeholders to re-execute the code (as the variables will be all the same in all the loop cycles).<\p>

Thank you very much!

Replies are listed 'Best First'.
Re^5: Global symbol "$prepare" requires explicit package name
by hippo (Chancellor) on Sep 19, 2019 at 09:05 UTC
    I donít need neither $sth handle for reuse nor the placeholders to re-execute the code

    Placeholders are not just beneficial for handle re-use. See eg. Answer: What are placeholders in DBI, and why would I want to use them? and the related allusions in Databases made easy. Perhaps your data would otherwise have been incorrectly quoted or incorrectly escaped or be of the wrong type or be in an inadmissible format, etc. Use placeholders or be prepared to explain and justify precisely why you have chosen not to.

Re^5: Global symbol "$prepare" requires explicit package name
by soonix (Canon) on Sep 19, 2019 at 10:44 UTC
    What you're asking for, here, is do.