Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从MYSQL数据库中检索特定id的详细信息_Php_Mysql_Sql_Database - Fatal编程技术网

Php 如何从MYSQL数据库中检索特定id的详细信息

Php 如何从MYSQL数据库中检索特定id的详细信息,php,mysql,sql,database,Php,Mysql,Sql,Database,根据URL中id的值从数据库获取数据 $id= $_GET['id']; $strSQL = "SELECT * FROM people WHERE id='$id'"; $rs = mysql_query($strSQL); 这是工作,但它显示一个空白页 如何修复此问题?[1]mysql.*已被弃用 [2] 。您的代码很容易受到sql注入的攻击。使用mysql\u real\u escape\u字符串($\u GET['id'])清理$\u GET['id'](mysqli,如果您更新到该字

根据URL中id的值从数据库获取数据

$id= $_GET['id'];
$strSQL = "SELECT * FROM people WHERE id='$id'";
$rs = mysql_query($strSQL);
这是工作,但它显示一个空白页


如何修复此问题?

[1]
mysql.*
已被弃用

[2] 。您的代码很容易受到sql注入的攻击。使用
mysql\u real\u escape\u字符串($\u GET['id'])清理
$\u GET['id']
mysqli
,如果您更新到该字符串)

[3] 。结果将作为资源返回。循环使用以下内容:

$rs = mysql_query($strSQL);
while($r = mysql_fetch_array($rs)) { echo $r['someField']; }

[1]
mysql.*
已被弃用

[2] 。您的代码很容易受到sql注入的攻击。使用
mysql\u real\u escape\u字符串($\u GET['id'])清理
$\u GET['id']
mysqli
,如果您更新到该字符串)

[3] 。结果将作为资源返回。循环使用以下内容:

$rs = mysql_query($strSQL);
while($r = mysql_fetch_array($rs)) { echo $r['someField']; }

[1]
mysql.*
已被弃用

[2] 。您的代码很容易受到sql注入的攻击。使用
mysql\u real\u escape\u字符串($\u GET['id'])清理
$\u GET['id']
mysqli
,如果您更新到该字符串)

[3] 。结果将作为资源返回。循环使用以下内容:

$rs = mysql_query($strSQL);
while($r = mysql_fetch_array($rs)) { echo $r['someField']; }

[1]
mysql.*
已被弃用

[2] 。您的代码很容易受到sql注入的攻击。使用
mysql\u real\u escape\u字符串($\u GET['id'])清理
$\u GET['id']
mysqli
,如果您更新到该字符串)

[3] 。结果将作为资源返回。循环使用以下内容:

$rs = mysql_query($strSQL);
while($r = mysql_fetch_array($rs)) { echo $r['someField']; }

你必须取得结果

试着这样做:

$id= $_GET['id'];
$strSQL = "SELECT * FROM people WHERE id='$id'";
$rs = mysql_query($strSQL);
while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
    echo $row['id']; //$row is an array of each row of your table
}


mysql.*
函数不推荐使用。您应该切换到
mysqli.*
pdo

您必须获取结果

试着这样做:

$id= $_GET['id'];
$strSQL = "SELECT * FROM people WHERE id='$id'";
$rs = mysql_query($strSQL);
while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
    echo $row['id']; //$row is an array of each row of your table
}


mysql.*
函数不推荐使用。您应该切换到
mysqli.*
pdo

您必须获取结果

试着这样做:

$id= $_GET['id'];
$strSQL = "SELECT * FROM people WHERE id='$id'";
$rs = mysql_query($strSQL);
while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
    echo $row['id']; //$row is an array of each row of your table
}


mysql.*
函数不推荐使用。您应该切换到
mysqli.*
pdo

您必须获取结果

试着这样做:

$id= $_GET['id'];
$strSQL = "SELECT * FROM people WHERE id='$id'";
$rs = mysql_query($strSQL);
while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
    echo $row['id']; //$row is an array of each row of your table
}


mysql\u*
函数已弃用您应该切换到
mysqli\u*
pdo
我不建议使用,因为它已弃用

从PHP5.5.0开始,此扩展已被弃用,将来将被删除

我建议使用

但是如果您坚持使用
mysql\uu
函数,您可以使用获取字段名上的关联数组键返回的详细信息

$id= $_GET['id'];
$strSQL = "SELECT * FROM people WHERE id='$id'";
$rs = mysql_query($strSQL);
if (!$rs) {
    echo 'Could not run query: ' . mysql_error(); //A bit of error checking
    exit;
}

$row = mysql_fetch_assoc($rs);

if($row){
  echo $row['field']; // An array key'd on the table's field names is returned
}
如果
people
表中的字段名为
first\u name
,则该值将存储在返回的关联数组中的
$row['first\u name']

我假设
id
是一个唯一的字段,最多只能返回一行。
如果不是这种情况,请使用一个条件为while($row=mysql\u fetch\u assoc($rs))
的循环遍历所有返回的行。

我不建议使用,因为它已被弃用

从PHP5.5.0开始,此扩展已被弃用,将来将被删除

我建议使用

但是如果您坚持使用
mysql\uu
函数,您可以使用获取字段名上的关联数组键返回的详细信息

$id= $_GET['id'];
$strSQL = "SELECT * FROM people WHERE id='$id'";
$rs = mysql_query($strSQL);
if (!$rs) {
    echo 'Could not run query: ' . mysql_error(); //A bit of error checking
    exit;
}

$row = mysql_fetch_assoc($rs);

if($row){
  echo $row['field']; // An array key'd on the table's field names is returned
}
如果
people
表中的字段名为
first\u name
,则该值将存储在返回的关联数组中的
$row['first\u name']

我假设
id
是一个唯一的字段,最多只能返回一行。
如果不是这种情况,请使用一个条件为while($row=mysql\u fetch\u assoc($rs))
的循环遍历所有返回的行。

我不建议使用,因为它已被弃用

从PHP5.5.0开始,此扩展已被弃用,将来将被删除

我建议使用

但是如果您坚持使用
mysql\uu
函数,您可以使用获取字段名上的关联数组键返回的详细信息

$id= $_GET['id'];
$strSQL = "SELECT * FROM people WHERE id='$id'";
$rs = mysql_query($strSQL);
if (!$rs) {
    echo 'Could not run query: ' . mysql_error(); //A bit of error checking
    exit;
}

$row = mysql_fetch_assoc($rs);

if($row){
  echo $row['field']; // An array key'd on the table's field names is returned
}
如果
people
表中的字段名为
first\u name
,则该值将存储在返回的关联数组中的
$row['first\u name']

我假设
id
是一个唯一的字段,最多只能返回一行。
如果不是这种情况,请使用一个条件为while($row=mysql\u fetch\u assoc($rs))
的循环遍历所有返回的行。

我不建议使用,因为它已被弃用

从PHP5.5.0开始,此扩展已被弃用,将来将被删除

我建议使用

但是如果您坚持使用
mysql\uu
函数,您可以使用获取字段名上的关联数组键返回的详细信息

$id= $_GET['id'];
$strSQL = "SELECT * FROM people WHERE id='$id'";
$rs = mysql_query($strSQL);
if (!$rs) {
    echo 'Could not run query: ' . mysql_error(); //A bit of error checking
    exit;
}

$row = mysql_fetch_assoc($rs);

if($row){
  echo $row['field']; // An array key'd on the table's field names is returned
}
如果
people
表中的字段名为
first\u name
,则该值将存储在返回的关联数组中的
$row['first\u name']

我假设
id
是一个唯一的字段,最多只能返回一行。
如果不是这种情况,请使用一个条件为while($row=mysql\u fetch\u assoc($rs))
的循环来循环所有返回的行。

正如我在原始注释中提到的:


您需要使用循环来获取数据,然后回显数据

其他人给了您一些示例,但没有使用您目前的方法,这里是一个PDO方法:

<?php
$mysql_hostname = 'xxx';
$mysql_username = 'xxx';
$mysql_password = 'xxx';
$mysql_dbname = 'xxx';

$id = $_GET['id'];

try {

$pdo= new PDO("mysql:host=$mysql_hostname;dbname=$mysql_dbname", $mysql_username, $mysql_password); 
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
     exit( $e->getMessage() );
}


try {

$stmt = $pdo->prepare('SELECT * FROM people WHERE id = :id');
$stmt->bindParam(':id', $id);
$stmt->execute();

} catch (PDOException $e) {
     echo $e->getMessage();
}

/* optional method
foreach($stmt as $row) {
      echo $row['id'] . ' ' . $row['name'] . ' ' . $row['email'];
}
*/

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
  $id = $row['id'];
  $n = $row['name'];
  $e = $row['email'];
}

echo $id;
echo "<br>";
echo $n;
echo "<br>";
echo $e;

?>
<?php
$mysql_hostname = 'xxx';
$mysql_username = 'xxx';
$mysql_password = 'xxx';
$mysql_dbname = 'xxx';

$id = $_GET['id'];

// $id= 4; // my own test id number

try {

$pdo= new PDO("mysql:host=$mysql_hostname;dbname=$mysql_dbname", $mysql_username, $mysql_password); 
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
     exit( $e->getMessage() );
}

try {
     $sql = "SELECT * FROM people WHERE id='$id'";
     $results = $pdo->query($sql);

} catch (PDOException $e) {
     echo $e->getMessage();
}

/* optional method
foreach($results as $row) {
      echo $row['id'] . ' ' . $row['name'] . ' ' . $row['email'];
}
*/

while ($row = $results->fetch(PDO::FETCH_ASSOC)) {
  $id = $row['id'];
  $n = $row['name'];
  $e = $row['email'];
}

echo $id;
echo "<br>";
echo $n;
echo "<br>";
echo $e;

?>


另一种PDO方法:

<?php
$mysql_hostname = 'xxx';
$mysql_username = 'xxx';
$mysql_password = 'xxx';
$mysql_dbname = 'xxx';

$id = $_GET['id'];

try {

$pdo= new PDO("mysql:host=$mysql_hostname;dbname=$mysql_dbname", $mysql_username, $mysql_password); 
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
     exit( $e->getMessage() );
}


try {

$stmt = $pdo->prepare('SELECT * FROM people WHERE id = :id');
$stmt->bindParam(':id', $id);
$stmt->execute();

} catch (PDOException $e) {
     echo $e->getMessage();
}

/* optional method
foreach($stmt as $row) {
      echo $row['id'] . ' ' . $row['name'] . ' ' . $row['email'];
}
*/

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
  $id = $row['id'];
  $n = $row['name'];
  $e = $row['email'];
}

echo $id;
echo "<br>";
echo $n;
echo "<br>";
echo $e;

?>
<?php
$mysql_hostname = 'xxx';
$mysql_username = 'xxx';
$mysql_password = 'xxx';
$mysql_dbname = 'xxx';

$id = $_GET['id'];

// $id= 4; // my own test id number

try {

$pdo= new PDO("mysql:host=$mysql_hostname;dbname=$mysql_dbname", $mysql_username, $mysql_password); 
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
     exit( $e->getMessage() );
}

try {
     $sql = "SELECT * FROM people WHERE id='$id'";
     $results = $pdo->query($sql);

} catch (PDOException $e) {
     echo $e->getMessage();
}

/* optional method
foreach($results as $row) {
      echo $row['id'] . ' ' . $row['name'] . ' ' . $row['email'];
}
*/

while ($row = $results->fetch(PDO::FETCH_ASSOC)) {
  $id = $row['id'];
  $n = $row['name'];
  $e = $row['email'];
}

echo $id;
echo "<br>";
echo $n;
echo "<br>";
echo $e;

?>

正如我在原始评论中提到的:


您需要使用循环来获取数据,然后回显数据

其他人给了您一些示例,但没有使用您目前的方法,这里是一个PDO方法:

<?php
$mysql_hostname = 'xxx';
$mysql_username = 'xxx';
$mysql_password = 'xxx';
$mysql_dbname = 'xxx';

$id = $_GET['id'];

try {

$pdo= new PDO("mysql:host=$mysql_hostname;dbname=$mysql_dbname", $mysql_username, $mysql_password); 
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
     exit( $e->getMessage() );
}


try {

$stmt = $pdo->prepare('SELECT * FROM people WHERE id = :id');
$stmt->bindParam(':id', $id);
$stmt->execute();

} catch (PDOException $e) {
     echo $e->getMessage();
}

/* optional method
foreach($stmt as $row) {
      echo $row['id'] . ' ' . $row['name'] . ' ' . $row['email'];
}
*/

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
  $id = $row['id'];
  $n = $row['name'];
  $e = $row['email'];
}

echo $id;
echo "<br>";
echo $n;
echo "<br>";
echo $e;

?>
<?php
$mysql_hostname = 'xxx';
$mysql_username = 'xxx';
$mysql_password = 'xxx';
$mysql_dbname = 'xxx';

$id = $_GET['id'];

// $id= 4; // my own test id number

try {

$pdo= new PDO("mysql:host=$mysql_hostname;dbname=$mysql_dbname", $mysql_username, $mysql_password); 
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
     exit( $e->getMessage() );
}

try {
     $sql = "SELECT * FROM people WHERE id='$id'";
     $results = $pdo->query($sql);

} catch (PDOException $e) {
     echo $e->getMessage();
}

/* optional method
foreach($results as $row) {
      echo $row['id'] . ' ' . $row['name'] . ' ' . $row['email'];
}
*/

while ($row = $results->fetch(PDO::FETCH_ASSOC)) {
  $id = $row['id'];
  $n = $row['name'];
  $e = $row['email'];
}

echo $id;
echo "<br>";
echo $n;
echo "<br>";
echo $e;

?>


另一个PDO