日期:2014-05-17  浏览次数:20459 次

mysql怎么获得http用get方式传过来的参数?
各位英雄,本人刚接触php,现有一问题请教:
我在网络中传参数过来(get方式):http://localhost/connect.php?username=dxtus@163.com&password=123456

现在我想完成这样的功能:在我的数据库表中查询这个username存在与否,如果不存在就添加进数据库表格。
以下是我的php实现代码(数据库已经连接成功):


$result = mysql_query("SELECT * FROM app_t WHERE username=\’$username\’"); //username就是通过url传来的参数

if($row = mysql_fetch_array($result))
  {
  echo "This username has existed!<br />";
  echo $row[0];
  }
  
  else
  {
  $sql="INSERT INTO app_t(username ,password ) VALUES(\’$username\’, \’$password\’)"; 
  //如果表中没有这条username记录,将传过来的参数写进数据库表
  if (!mysql_query($sql,$connection))
  {
  die('Error: ' . mysql_error());
  }
  else
  echo "1 record added";
  }


以下是运行后的报错:Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Apache2.2\htdocs\connect.php on line 29
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\’\’, \’\’)' at line 1

请问下我该如何在mysql中使用web传过来的参数进行查询,或者把这些参数插入数据表中呢,谢谢!
另,我用这种方式也不行:$result = mysql_query("SELECT * FROM app_t WHERE username=$_GET["username"]");
再次谢谢大家,希望知者能不辞辛苦,给我回复,做个好心人。本人分不多,sorry!

------解决方案--------------------
PHP code

$result = mysql_query("SELECT * FROM app_t WHERE username='$username'"); //username就是通过url传来的参数

if($row = mysql_fetch_array($result))
  {
  echo "This username has existed!<br />";
  echo $row[0];
  }
   
  else
  {
  $sql="INSERT INTO app_t(username ,password ) VALUES('$username', '$password')";  
  //如果表中没有这条username记录,将传过来的参数写进数据库表
  if (!mysql_query($sql,$connection))
  {
  die('Error: ' . mysql_error());
  }
  else
  echo "1 record added";
  }

------解决方案--------------------
一步一步来。
首先,SQL语句里面的单引号不需要转义;
然后,先用echo $_get($username);语句输出看看能否正确获取值;
最后,就这样,哈哈