mysql语句中的php变量…我该怎么做

mysql语句中的php变量…我该怎么做,php,Php,您需要删除附加引号: <?php mysql_connect("localhost", "root", "") or die(mysql_error()); mysql_select_db("names") or die(mysql_error()); $green = "rose"; $data = mysql_query("SELECT * FROM freinds2 WHERE name = '"$green"'); or die(mysql_error

您需要删除附加引号:

 <?php
 mysql_connect("localhost", "root", "") or die(mysql_error()); 
 mysql_select_db("names") or die(mysql_error()); 

 $green = "rose";    

 $data = mysql_query("SELECT * FROM freinds2 WHERE name = '"$green"'); 
 or die(mysql_error()); 

 Print "<table border cellpadding=3>"; 
 while($info = mysql_fetch_array( $data )) 
 { 
     Print "<tr>"; 
     Print "<th>Name:</th> <td>".$info['name'] . "</td> "; 
     Print "<th>Pet:</th> <td>".$info['pet'] . " </td></tr>"; 
     Print "<th>Color:</th> <td>".$info['fav_color'] . "</td> "; 
     Print "<th>Food:</th> <td>".$info['fav_food'] . " </td></tr>"; 
 } 
 Print "</table>"; 
 ?> 
变成

 $data = mysql_query("SELECT * FROM freinds2 WHERE name = '"$green"'); 


同样值得一提的是,从PHP 5.5.0开始,mysql_query已被弃用,您应该更新代码以使用MySQLi或PDO_mysql

您需要删除额外的引号:

 <?php
 mysql_connect("localhost", "root", "") or die(mysql_error()); 
 mysql_select_db("names") or die(mysql_error()); 

 $green = "rose";    

 $data = mysql_query("SELECT * FROM freinds2 WHERE name = '"$green"'); 
 or die(mysql_error()); 

 Print "<table border cellpadding=3>"; 
 while($info = mysql_fetch_array( $data )) 
 { 
     Print "<tr>"; 
     Print "<th>Name:</th> <td>".$info['name'] . "</td> "; 
     Print "<th>Pet:</th> <td>".$info['pet'] . " </td></tr>"; 
     Print "<th>Color:</th> <td>".$info['fav_color'] . "</td> "; 
     Print "<th>Food:</th> <td>".$info['fav_food'] . " </td></tr>"; 
 } 
 Print "</table>"; 
 ?> 
变成

 $data = mysql_query("SELECT * FROM freinds2 WHERE name = '"$green"'); 

同样值得一提的是,从PHP 5.5.0开始,mysql_query已被弃用,您应该更新代码以使用MySQLi或PDO_mysql

 $data = mysql_query("SELECT * FROM freinds2 WHERE name = '" . $green . "'"); 
试试这个->

 $data = mysql_query("SELECT * FROM freinds2 WHERE name = '" . $green . "'"); 

您应该远离mysql,因为mysql API已被弃用

您可以使用PDO或MySQLi,我更喜欢PDO,因为它支持的不仅仅是MySQL

$data = mysql_query("SELECT * FROM freinds2 WHERE name = '$green'"); 
要使用标准查询,可以执行以下操作:

$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');
但是对于大多数变量,尤其是用户输入的字段,应该使用准备好的查询

$stmt = $db->query("SELECT * FROM freinds2 WHERE name = '".$green."'");
此查询受SQL注入的保护

要获得多个结果,您可以运行:

$stmt = $db->prepare("SELECT * FROM freinds2 WHERE name = ?");
$stmt->execute(array($green));
while($info=$stmt->fetch()){
打印“”;
打印“名称:”.$info['Name']。”;
打印“宠物:.$info['Pet']”;
打印“颜色:”.$info['fav_Color']。”;
打印“食品:.”信息['fav_Food']。”;
}

这是一个很好的PDO教程:

您应该远离mysql,因为mysql API已被弃用

您可以使用PDO或MySQLi,我更喜欢PDO,因为它支持的不仅仅是MySQL

$data = mysql_query("SELECT * FROM freinds2 WHERE name = '$green'"); 
要使用标准查询,可以执行以下操作:

$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');
但是对于大多数变量,尤其是用户输入的字段,应该使用准备好的查询

$stmt = $db->query("SELECT * FROM freinds2 WHERE name = '".$green."'");
此查询受SQL注入的保护

要获得多个结果,您可以运行:

$stmt = $db->prepare("SELECT * FROM freinds2 WHERE name = ?");
$stmt->execute(array($green));
while($info=$stmt->fetch()){
打印“”;
打印“名称:”.$info['Name']。”;
打印“宠物:.$info['Pet']”;
打印“颜色:”.$info['fav_Color']。”;
打印“食品:.”信息['fav_Food']。”;
}

这里有一个很好的PDO教程:

另外,如果您想保留您的报价,也可以使用concat。请注意mysql_查询是不推荐的数据。另外,如果您想保留您的报价,也可以使用concat。请注意mysql_查询已弃用弃用数据这应该是您需要的数据这应该是您需要的数据您的表名错了。您应该真正远离mysql,使用PDO或MySQLi,正如我在下面的回答中所说的。您还应该学习使用准备好的查询来防止用户输入变量(如POST/GET等)的SQL注入。您的表名错了。您应该真正远离mysql,使用PDO或MySQLi,正如我在下面的回答中所说的。您还应该学习使用准备好的查询来防止用户输入变量(如POST/GET等)的SQL注入。非常感谢这一点,我正在完成教程。非常感谢这一点,我正在完成教程