2013-02-08 64 views
0

我试图显示数据提交后,并已被插入到数据库中的用户从php程序输入的信息。当我运行它时,我看不到任何结果。我只是得到一个空白页面。我找不到代码中的错误,我希望你们能帮我找到它,所以我可以修复它并继续前进。这仅是我的代码部分,我想插入一些资讯至我的DB,然后显示IT我已插入...从php程序显示插入的信息到数据库,然后显示插入的信息

if ($valid) { 
    $lines = file('/home/user/Documents/file.txt'); 
    $uid = trim($lines[0]); 
    $pw = trim($lines[1]); 
    $dbserver = trim($lines[2]); 
    $dbname = trim($lines[3]); 

    //Connecting to mysql 
    $link = mysqli_connect($dbserver, $uid, $pw, $dbname); 
    or die('Could not connect: ' . mysql_error()); 

    //Our SQL Query 
    $firstname = $_POST['firstname']; 
    $lastname = $_POST['lastname']; 
    $organization = $_POST['organization']; 
    $emailaddress = $_POST['emailaddress']; 
    $phonenumber = $_POST['phonenumber']; 
    $sql_query = "INSERT INTO table VALUES ('$firstname','$lastname','$organization','$emailaddress','$phonenumber')"; 

     //Run our sql query 
    $result = mysqli_query($link, $sql_query) or die('query failed'. mysql_error()); 

    // Get all records now in DB 
    $sql_query = "SELECT * FROM table"; 
    //Run our sql query 
    $result = mysqli_query($link, $sql_query) or die('query failed'. mysql_error()); 

    //iterate through result printing each record 
    echo "<br>Names in DB: <br>"; 
    while($row = mysqli_fetch_assoc($result)) { 
    echo $row['firstname']; 
    echo $row['lastname']; 
    echo $row['organization']; 
    echo $row['emailaddress']; 
    echo $row['phonenumber']; 
    echo "<br>"; 
    } 

    // Free resultset (optional) 
    mysqli_free_result($result); 

    //Close the MySQL Link 
    mysqli_close($link); 
    } 
} 
+2

您的代码易受SQL注入影响,请立即停止使用它。 [**不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql)。他们不再被维护[并且被正式弃用](http://j.mp/XqV7Lp)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。 – Kermit 2013-02-08 19:31:24

+0

你错过了一个'(''''''''''''让你找到你的地方... – 2013-02-08 19:32:25

+0

我衷心鼓励你阅读关于清理来自外部世界的查询值,现在你的代码很容易被恶作剧。 – Jerry 2013-02-08 19:37:00

回答

0

变化$ sql_query = "INSERT INTO table VALUES $firstname','$lastname','$organization','$emailaddress','$phonenumber')";

$sql_query = "INSERT INTO table VALUES ($firstname','$lastname','$organization','$emailaddress','$phonenumber')"; 

此外,您正在编写的代码非常不安全,并且很容易受到SQL注入的攻击。

花一些时间学习MySQLiPDO insead of Mysql_ *函数。下面是使用带mysqli的参数化查询的基本查询:

$ query = $ mysqli-> prepare(“SELECT COLUMN_LIST FROM TABLE WHERE COLUMN =?”); $ query-> bind_param('s',$ UNSAFE_VARIABLE); $ query-> execute();

+0

嘿,对不起,这是我的错误想念('我已经在我的代码中有他们。我使用的是第一MySQLi,但我有同样的问题..所以,我只是想先让它工作,然后尝试与MySQLi – JV17 2013-02-08 19:52:25

+0

好的,您可以在设置$ result和post后执行var_dump($ result)结果? – BOMEz 2013-02-08 20:34:06

0

如果你坚持使用过时的mysql函数,我相信你会找到一个类似的函数,你正在寻找的是mysqli_insertid