RE: [PHP] mysqli sql question
Peet, Could you do something like this instead? This is using named placeholders and a separate line for your statement but I was able to get it to echo the statement in this manner. $sql = "UPDATE table SET field1=:field1, field2=:field2 WHERE id=:id"; $sth = $dbh->prepare($sql); $sth->execute(array(":field1"=>$field1, ": field2"=>$ field2, ": id"=>$id)); echo $sql; Hope that helps, Jen -Original Message- From: Peet Grobler [mailto:p...@hivemind.net] Sent: Wednesday, August 31, 2011 4:24 AM To: php-general@lists.php.net Subject: [PHP] mysqli sql question Is it possible to get the actual sql that is being used to query or update the database? E.g $sth = $dbh->prepare ("update table set field=?, field2=? where id=?); mysqli_bind_param ($sth, 'ssi', 'text1', 'text2', 10); $sth->execute(); Something like $sth->sql? Or $dbh->sql? I want to see "update table set field='text1', field2='text2' where id=10; Thanks in advance, Peet -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] mysqli sql question
On 8/31/2011 1:38 PM, John Black wrote: > Hi Peet, > > not sure if there is a method to echo the sql but you can set your > development MySQL server to log all queries to a log file. > Use the log file with tail and you'll get a live view of all queries the > server attempts to process. > I already have this on the development system. I'm looking for something for the live system that displays the SQL if a query fails (this is done in an email to the developer's mailing list) -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] mysqli sql question
On 08/31/2011 05:23 AM, Peet Grobler wrote: > Is it possible to get the actual sql that is being used to query or > update the database? > > E.g > $sth = $dbh->prepare ("update table set field=?, field2=? where id=?); > mysqli_bind_param ($sth, 'ssi', 'text1', 'text2', 10); > $sth->execute(); > > Something like $sth->sql? Or $dbh->sql? > > I want to see "update table set field='text1', field2='text2' where id=10; > > > Thanks in advance, > Peet > Look up the EXPLAIN SQL function call. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] mysqli sql question
On 31.08.2011 11:23, Peet Grobler wrote: Is it possible to get the actual sql that is being used to query or update the database?> E.g $sth = $dbh->prepare ("update table set field=?, field2=? where id=?); mysqli_bind_param ($sth, 'ssi', 'text1', 'text2', 10); $sth->execute(); Something like $sth->sql? Or $dbh->sql? Thanks in advance, Peet Hi Peet, not sure if there is a method to echo the sql but you can set your development MySQL server to log all queries to a log file. Use the log file with tail and you'll get a live view of all queries the server attempts to process. Open my.cnf / my.ini and add the following line: log= "/path/to/log/mysqld_query.log" or log="D:\logs\mysqld_query.log" More info here: http://dev.mysql.com/doc/refman/5.1/en/query-log.html I hope this helps ... ohh and don't forget to clear the log every now and then because it will get HUGE quickly. -- John -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php