我编写了一个php代码,生成许多"secret_key“。代码如下
<?php
include("/home3/kintest2/public_html/include/config.local.php");
$connect= mysql_connect ($DBHOST,$DBUSER,$DBPASSWORD);
$select= mysql_select_db($DBNAME, $connect);
$test2= "SELECT * FROM `video` WHERE `type` LIKE 'private'";
$results= mysql_query($test2, $connect);
$num_rows = mysql_num_rows($results);
for ($count=$num_rows; $count>=0; $count-- && $secret_key= uniqid().mt_rand(1,9) )
{
mysql_query("UPDATE video SET secret_key= '$secret_key' WHERE type='private'",$connect);
echo " count is {$count} key is {$secret_key}</br>";
}
?>这个代码只有一个问题。所有满足查询条件的mysql记录都被赋予相同的密钥。但是我想给每一张唱片分配一个不同的键。mysql_query("UPDATE video SET secret_key= '$secret_key' WHERE type='private'",$connect);
这是回波输出
总共有13项记录。
发布于 2012-07-20 07:14:24
您的echo输出已经列出了不同的键,但是即使我编写的代码有点不同:
while( !is_null($row = mysql_fetch_assoc($results)) ) {
$secret_key=uniqid().mt_rand(1,9); /* (?) */
$dbCmd = "UPDATE video SET secret_key = '$secret_key' WHERE id={$row['id']}";
msyql_query($dbCmd, $connect);
} 您的查询对每行进行更新,类型为=‘私有’(atm) .
发布于 2012-07-20 07:29:05
如果希望键仅应用于一行,则必须调整UPDATE语句以仅影响一行。因此,一种方法是获取一些标识行的唯一键,并为每个行发出一个单独的更新查询。另一种选择可能是使用SQL生成随机密钥服务器端。
https://stackoverflow.com/questions/11574551
复制相似问题