+ -
当前位置:首页 → 问答吧 → 【红宝书】第五题

【红宝书】第五题

时间:2008-10-27

来源:互联网

在mysql中防止注入主要是对输入进行验证
一般采用如下方式
function safe($string)
{
return mysql_escape_string($string);

}
而在php5上可以采用安全抽象层的方式进行操作,比如
$name = $_POST['name'];
 //连接到数据库
 $connect = mysqli_connect( 'localhost', 'username','password', 'database' );
 if ( !$connect ) exit( 'connection failed: ' . mysqli_connect_error() );
 //创建一个查询语句源
 $stmt = mysqli_prepare( $connect,"SELECT age FROM people WHERE name = ?" );
 if ( $stmt ) {
  //把替代绑定到语句上
  mysqli_stmt_bind_param( $stmt, "s", $name );
  //执行该语句
  mysqli_stmt_execute( $stmt );
  //检索结果...
  mysqli_stmt_bind_result( $stmt, $intelligence );
  // ...并显示它
  if ( mysqli_stmt_fetch( $stmt ) ) {
   print "A $name has $intelligence intelligence.\n";
  } else {
   print 'Sorry, no records found.';
  }
  //清除语句源
  mysqli_stmt_close( $stmt );
 }
 mysqli_close( $connect );

作者: jiangwb1   发布时间: 2008-10-27