我有这段代码,主要是为了为我的网站创建 shorurls。但我根本无法让它工作。你看到它有什么问题吗?在另一个里面运行 while() 可以吗?
$urloriginal = $nt['fecha']."/".$nt['titulolower'];
mysql_query("SET NAMES 'utf8'");
$shortcheck = mysql_query("SELECT * FROM shorturls WHERE urloriginal = '".$urloriginal."' LIMIT 1");
while($urlitem = mysql_fetch_array($shortcheck)) {
if($urlitem['urloriginal'] != "0") {
echo "http://neutronico.com/u/".$urlitem['id'];
} else {
mysql_close($shortcheck);
mysql_query("INSERT into shorturls (urloriginal) VALUES ('$urloriginal')")
or die(mysql_error());
$shortget = mysql_query("SELECT * FROM shorturls WHERE urloriginal = '".$urloriginal."' LIMIT 1");
while($urlitem2 = mysql_fetch_array($shortget)) {
echo "http://neutronico.com/u/".$urlitem['id'];
};
mysql_close($shortget);
};
};
非常感谢。
我看到的第一个问题是您在结果集上调用 mysql_close()
中间脚本。删除通话:
mysql_close($shortcheck);
mysql_close()
旨在在资源链接(数据库连接)上调用。不在查询结果资源上。它在脚本退出时被隐式调用,因此您根本不需要调用它,除非您有特定的内存要求。我想你打算调用mysql_free_result()
, 但是这又是隐式调用的,除非你需要管理内存,否则你不需要调用它。
稍后,删除此调用,因为它不会关闭 MySQL 资源链接。
mysql_close($shortget);
我是一名优秀的程序员,十分优秀!