三大重要的MySQL查询(下)

日期: 2009-07-20 作者:it168 来源:TechTarget中国 英文

  SELECT MySQL查询命令

  现在数据库中已经有了数据。如果我们要从中获取数据,我们需要SELECT命令。抓取数据的选择有多个。

  第一, 从数据库中抓取整个数据表

  Code highlighting produced by Actipro CodeHighlighter (freeware)
  http://www.CodeHighlighter.com/
  –>  SELECT * FROM `tablename`

  这里的PHP脚本用来解释这一示例。该脚本将整个MySQL数据包抓取出来并将其显示在你的浏览器中。

  Code highlighting produced by Actipro CodeHighlighter (freeware)
  http://www.CodeHighlighter.com/
  –> < ?php
  //Step 1 Connect to database
  $username = “Your MySQL username here”;
  $password = “Your MySQL password”;
  $hostname = “Hostname”;
  $table = “MySQL Table name where the data will be inserted”;
  $database = “The name of the MySQL database which holds the table”;
  $dbhandle = mysql_connect($hostname, $username, $password)
  or die(”Unable to connect to MySQL”);
  $selected = mysql_select_db($database,$dbhandle)
  or die(”Could not select $database”);
  //Step 2. Insert other PHP scripts here (such as grabbing data from HTML forms, etc)
  //Step 3. Sanitize variables before inserting to database. This will prevent MySQL injection.
  $categories_id = mysql_real_escape_string(stripslashes($categories_id));
  $language_id = mysql_real_escape_string(stripslashes($language_id));
  $categories_name = mysql_real_escape_string(stripslashes($categories_name));
  $result = mysql_query(”SELECT * FROM `categories_description`”)
  or die(mysql_error());
  echo ‘< table border=”1″>’;
  echo ‘< tr>’;
  echo ‘< td>< b>Categories ID< /b>< /td>’;
  echo ‘< td>< b>Language ID< /b>< /td>’;
  echo ‘< td>< b>Categories Name< /b>< /td>’;
  echo ‘< /tr>’;
  while($row = mysql_fetch_array($result)){
  echo ‘< tr>’;
  echo ‘< td>’.$row[‘categories_id’].'< /td>’;
  echo ‘< td>’.$row[‘language_id’].'< /td>’;
  echo ‘< td>’.$row[‘categories_name’].'< /td>’;
  echo ‘< /tr>’;
  }
  echo ‘< /table>’;
  ?>

  这样在HTML浏览器中会显示出该表格,像这样:


  第二种是从MySQL表格的指定域名中提取指定数据。当你需要从满足特定条件的指定域名中提取指定数据的时候,如:我们需要提取客户邮件地址的时候如果他们也能准确提供用户名和密码。那么在表格中就存在三个域:用户名,密码,电子邮件地址。那么要在MySQL表格中提取客户电子邮件地址,PHP查询可以是:

  在PHP MySQL查询中,WHERE陈述指定了邮件地址匹配特定用户名和密码的条件。

  你可以用一些AND语句来查询MySQL。

  Code highlighting produced by Actipro CodeHighlighter (freeware)
  http://www.CodeHighlighter.com/
  –> < ?php
  //Connect to database…
  //Sanitize the variables..
  //MySQL query
  $result = mysql_query(”SELECT `emailaddress` FROM `customertable` WHERE `username`=’$username’ AND `password`=’$password'”)
  or die(mysql_error());
  $row = mysql_fetch_array($result)
  or die(”Invalid query: ” . mysql_error());
  $emailaddress = $row[’emailaddress’];
  echo “Your email address is: $emailaddress”;
  ?>

  UPDATE MySQL查询命令

  PHP中最重要的MySQL查询之一还有UPDATE。如命令所示,它可以让你更新MySQL表格中的记录,而不需要再次插入一行。

  例如,假设你拥有下表:

  
  假设Peter Patter要将密码从”logan”改成”weaponx”,那么使用UPDATE的MySQL查询应该是:

  Code highlighting produced by Actipro CodeHighlighter (freeware)
  http://www.CodeHighlighter.com/
  –> < ?php
  //Step 1 Connect to database
  $username = “yourusername”;
  $password = “yoursqlpassword”;
  $hostname = “localhost”;
  $table = “usertable”;
  $database = “userdatabase”;
  $dbhandle = mysql_connect($hostname, $username, $password)
  or die(”Unable to connect to MySQL”);
  $selected = mysql_select_db($database,$dbhandle)
  or die(”Could not select $database”);
  //Initial variables
  $username = ‘wolverine’;
  $fullname = ‘Peter Patter’;
  //Set new password for Peter Patter
  $newpassword = ‘weaponx’;
  //sanitize
  $newpassword = mysql_real_escape_string(stripslashes($newpassword));
  $username = mysql_real_escape_string(stripslashes($username));
  $fullname = mysql_real_escape_string(stripslashes($fullname));
  //Update records in MySQL database
  mysql_query(”UPDATE usertable SET password = ‘$newpassword’ WHERE username = ‘$username’ AND fullname = ‘$fullname'”)
  or die(mysql_error());
  echo ‘The database has been updated. Thank you’;
  ?>

  上面的更新脚本会将Peter Patter的密码从 “logan”改成”weaponx”。上面的脚本只是一个示范,你可以用上面的脚本和HTML表单结合,这样可以创建更多的互动性更新数据。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐