$db = mysql_connect("localhost", "root", ""); $er = mysql_select_db("ram"); $query = "insert into names values('$name','$add1','$add2','$mail')"; $result = mysql_query($query); print "<p> Person's Information Inserted </p>"; $result = mysql_query("SELECT * FROM names"); ?> <table border="2"> <tr> <th>Name</th> <th>Address Line 1</th> <th>Address Line 2 </th> <th>E-mail Id </th> </tr> <? while ($array = mysql_fetch_row($result)); { print "<tr> <td>"; echo $array[0]; print "</td> <td>"; echo $array[1]; print "</td> <td>"; echo $array[2]; print "</td> <td>"; echo $array[3]; print "</td> </tr>"; } ?>
尝试这个:
<?php # Init the MySQL Connection if( !( $db = mysql_connect( 'localhost' , 'root' , '' ) ) ) die( 'Failed to connect to MySQL Database Server - #'.mysql_errno().': '.mysql_error(); if( !mysql_select_db( 'ram' ) ) die( 'Connected to Server, but Failed to Connect to Database - #'.mysql_errno().': '.mysql_error(); # Prepare the INSERT Query $insertTPL = 'INSERT INTO `name` VALUES( "%s" , "%s" , "%s" , "%s" )'; $insertSQL = sprintf( $insertTPL , mysql_real_escape_string( $name ) , mysql_real_escape_string( $add1 ) , mysql_real_escape_string( $add2 ) , mysql_real_escape_string( $mail ) ); # Execute the INSERT Query if( !( $insertRes = mysql_query( $insertSQL ) ) ){ echo '<p>Insert of Row into Database Failed - #'.mysql_errno().': '.mysql_error().'</p>'; }else{ echo '<p>Person\'s Information Inserted</p>' } # Prepare the SELECT Query $selectSQL = 'SELECT * FROM `names`'; # Execute the SELECT Query if( !( $selectRes = mysql_query( $selectSQL ) ) ){ echo 'Retrieval of data from Database Failed - #'.mysql_errno().': '.mysql_error(); }else{ ?> <table border="2"> <thead> <tr> <th>Name</th> <th>Address Line 1</th> <th>Address Line 2</th> <th>Email Id</th> </tr> </thead> <tbody> <?php if( mysql_num_rows( $selectRes )==0 ){ echo '<tr><td colspan="4">No Rows Returned</td></tr>'; }else{ while( $row = mysql_fetch_assoc( $selectRes ) ){ echo "<tr><td>{$row['name']}</td><td>{$row['addr1']}</td><td>{$row['addr2']}</td><td>{$row['mail']}</td></tr>\n"; } } ?> </tbody> </table> <?php } ?>
在将值传递到数据库之前,您的初始解决方案没有显示任何明显的价值。这就是SQL注入攻击(甚至是通过SQL传递的意外错误)发生的方式。不要做!
您的数据库似乎没有主键。尽管从技术上讲,在所有使用中这些都不是必需的,但它们是一种好习惯,并且为引用表中的特定行提供了一种更加可靠的方式,无论是添加相关表还是在该表中进行更改。
您需要在每个阶段检查每个操作是否有错误。大多数PHP函数都足够好以产生响应,它们将在错误条件下返回。随时检查这些条件是您的工作- 永远不要假设PHP会按照您的期望,期望的方式和期望的顺序进行操作。这就是事故的发生…
我上面提供的代码包含许多要点,如果发生错误,将返回一条消息。尝试一下,查看是否报告了任何错误消息,查看“错误消息”,如果适用,还返回错误代码并进行一些研究。
祝好运。