On 5/1/07, Nathaniel Hall <lists@xxxxxxxxxxxxxxxxxxx> wrote:
I am attempting to run a script that will run from the command line nightly to update a field in a database. I already created a script that would access the database and insert most of the information when a webpage is visited and I had no problems with it. The command line script appears to fail on the prepare. I have echo'ed the SQL statement to the screen, copied it, and run it on the MySQL server with no problems. Any ideas? <?php $mysqli = new mysqli('localhost', 'root', 'abc123', 'mydb'); if (mysqli_connect_errno()) { echo "Unable to connect to database.\n"; exit; } else { $login = date('m\-d\-Y'); if ($logout = $mysqli->prepare("UPDATE `mydb`.`authlog` SET `logout` = ? WHERE `login` LIKE '$login%'")) { // <--- Will not go any further than here, even when hard coding the information. $logout->bind_param("s", date('m\-d\-Y\TH\:i\:s')); $logout->execute(); $logout->close(); } } $mysqli->close(); ?>
Add full error reporting, then make sure you can see the errors, then test to see if you have the mysqli extension: error_reporting( E_ALL ); ini_set( 'display_errors', 1 ); ini_set( 'log_errors', 1 ); if( !in_array( 'mysqli', get_loaded_extensions() ) ) { die( 'no mysqli found' ); } Also, why do you need to escape the dashes in the date() calls?
php -r 'echo date("Y-m-d");'
2007-05-01 -- Greg Donald http://destiney.com/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php