我有这个PHP脚本每天由cronjob运行:
mysql_connect("$host", "$username", "$password")or die("Could not connect to the database: " . mysql_error()) ;
mysql_select_db("$db_name") or die("Could not select database: " . mysql_error()) ;
//create backup table with current date concatenated to the table name
$create_table = "set @c=concat('create table rc_profile_table_backup_',date_format(now(),'%Y_%m_%d'))";
$prepare = "prepare stmt from @c";
$execute = "execute stmt";
$deallocate = "deallocate prepare stmt";
mysql_query($create_table);
mysql_query($prepare);
mysql_query($execute);
mysql_query($deallocate);
echo $sql11 = "insert rc_profile_table_backup_".mktime(date("y"),date("m"),date("d"))."select * from rc_profile_table"."\n";
我怎样才能实现上面的插入?我在cronjob中运行此脚本,因此它必须使用当前日期获取表名并执行插入操作。我怎么知道现在的日期?
感谢
答案 0 :(得分:2)
您可以使用流包装器php://stdout
或预定义的STDOUT
(这是首选方式):
fwrite(STDOUT, "My text to write to stdout");
参考:http://php.net/manual/en/wrappers.php.php
你的php看起来像这样:
$tableName = "rc_profile_table_backup_" . date("Y_m_d");
mysql_query("CREATE TABLE `{$tableName}` ..."); // insert your schema here
mysql_query("INSERT INTO `{$tableName}` SELECT * FROM `rc_profile_table`");
不要使用不必要的字符串插入:
("$db_name")
可以写成
($db_name)
准备,执行和解除分配的整个过程应该使用适当的mysql类(mysqli,PDO)而不是你自己的代码。他们为你做了所有这些工作。