我对php很陌生,实在无法弄清楚我做错了什么。
我的变量$ largeid在结果中显示为空:
$newfile=$_POST['largeName'].$largeid.".php";
即使执行此代码后:
while($largeidrow = mysql_fetch_array(largeidresult))
{
$largeid = $largeidrow['large_id'];
}
这是整个代码:
<?php
$con = mysql_connect("localhost","","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
$sql="INSERT INTO larges(name,largecontent)VALUES('$_POST[largeName]','$_POST[content]')";
if (!mysql_query($sql,$con))
{
echo "failed";
die('Error: ' . mysql_error());
}
echo "1 record added";
$largeidresult = ("SELECT large_id FROM larges WHERE name='$_POST[largeName]'");
if (!mysql_query($largeidresult,$con))
{
echo "failed";
die('Error: ' . mysql_error());
}
while($largeidrow = mysql_fetch_array(largeidresult))
{
$largeid = $largeidrow['large_id'];
}
if ($_POST['largeName']) {
error_reporting(0);
$i=1;
while($file = fopen("untitled$i.php", "r")) { fclose($file); $i++; }
if($file = fopen("untitled$i.php", "w")) {
$php = "<html> \n <head> \n </head> \n <body> \n test \n <?php \n echo 'hallo'; \n ?> \n </body> \n <html>";
$file_ext = strip_tags($_POST['$php']);
if(fwrite($file, $php) === false) { echo "Could not write"; exit; }
fclose($file);
$newfile=$_POST['largeName'].$largeid.".php";
system("mv untitled$i.php $newfile");
header("Location: $newfile");
}
}
else {
echo "<form method=post action='".$_SERVER["SCRIPT_NAME"]."'>\n";
echo "New File Name: <input name='filename'>\n</form>\n";
}
?>
答案 0 :(得分:2)
首先我会说不要使用mysql函数。使用mysqli
或PDO
。
警告从PHP 5.5.0开始,不推荐使用此扩展程序 将来删除。相反,MySQLi或PDO_MySQL扩展 应该使用。另请参阅MySQL:选择API指南和相关的常见问题解答 欲获得更多信息。该功能的替代方案包括..
在您的代码中,您调用mysql_fetch_array(#link)
的方式是错误的。
$sql = ("SELECT large_id FROM larges WHERE name='$_POST[largeName]'");
$result = mysql_query($sql);
if($result)
{
while($row= mysql_fetch_array($result))
{
$largeid = $row['large_id'];
}
}
答案 1 :(得分:0)
当你进行插入时,你正在使用这一行:
$sql="INSERT INTO larges(name,largecontent)VALUES('$_POST[largeName]','$_POST[content]')";
用这个改变它:
$sql="INSERT INTO larges(name,largecontent)VALUES('".$_POST[largeName]."','".$_POST[content]."')";
您必须将php变量与静态文本分开。对SELECT也使用相同的方法。