sql查询结果为null。

时间:2013-06-28 09:38:40

标签: php mysql sql

我对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";
}
?>

2 个答案:

答案 0 :(得分:2)

首先我会说不要使用mysql函数。使用mysqliPDO

From PHP documentation

  

警告从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也使用相同的方法。