我如何为在 MySQL 数据库的 table 中找不到数据编写 php 代码?
How can I write a php code for data can not find in table of MySQL database?
我很抱歉,这是一个愚蠢的问题,但由于我是网络语言的新手,而且 php 我不知道如何解决这个问题。
我有一个代码,它从用户那里获取 ID,然后连接到 MySQL,并从数据库 table 中获取该 ID 号的数据,然后显示在网页上。
但是我想知道如果用户输入一个不在数据库 table 中的 ID 时我应该添加什么到这个代码显示没有找到数据的消息。
这是我的代码:
<?php
//connect to the server
$connect = mysql_connect ("localhost","Test","Test") ;
//connection to the database
mysql_select_db ("Test") ;
//query the database
$ID = $_GET['Textbox'];
$query = mysql_query (" SELECT * FROM track WHERE Code = ('$ID') ");
//fetch the results / convert results into an array
$ID = $_GET['Textbox'];
WHILE($rows = mysql_fetch_array($query)) :
$ID = 'ID';
echo "<p style=\"font-color: #ff0000;\"> $ID </p>";
endwhile;
?>
谢谢。
对不起,如果这个问题太愚蠢了。
您应该使用 PDO(这里有很棒的教程:http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers ). This way, you can develop safer applications easier. You need to prepare the ID before inserting it to the query string, to avoid any user manipulation of the mysql query (it is called sql injection, guide: http://www.w3schools.com/sql/sql_injection.asp)。
主要回答你的问题,得到结果后,你查看结果中有没有行,如果没有结果,那么数据库中没有这个ID。如果使用 PDO 语句 $stmt->rowCount();
.
$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');
$stmt = $db->prepare("SELECT * FROM table WHERE Code=?");
$stmt->bindValue(1, $id, PDO::PARAM_INT); // or PDO::PARAM_STR
$stmt->execute();
$row_count = $stmt->rowCount();
if ($row_count > 0) {
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
//results are in $results
} else {
// no result, no such an ID, return the error to the user here.
}
不使用 mysql_* 函数的另一个原因:http://php.net/manual/en/migration55.deprecated.php
我很抱歉,这是一个愚蠢的问题,但由于我是网络语言的新手,而且 php 我不知道如何解决这个问题。
我有一个代码,它从用户那里获取 ID,然后连接到 MySQL,并从数据库 table 中获取该 ID 号的数据,然后显示在网页上。
但是我想知道如果用户输入一个不在数据库 table 中的 ID 时我应该添加什么到这个代码显示没有找到数据的消息。
这是我的代码:
<?php
//connect to the server
$connect = mysql_connect ("localhost","Test","Test") ;
//connection to the database
mysql_select_db ("Test") ;
//query the database
$ID = $_GET['Textbox'];
$query = mysql_query (" SELECT * FROM track WHERE Code = ('$ID') ");
//fetch the results / convert results into an array
$ID = $_GET['Textbox'];
WHILE($rows = mysql_fetch_array($query)) :
$ID = 'ID';
echo "<p style=\"font-color: #ff0000;\"> $ID </p>";
endwhile;
?>
谢谢。
对不起,如果这个问题太愚蠢了。
您应该使用 PDO(这里有很棒的教程:http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers ). This way, you can develop safer applications easier. You need to prepare the ID before inserting it to the query string, to avoid any user manipulation of the mysql query (it is called sql injection, guide: http://www.w3schools.com/sql/sql_injection.asp)。
主要回答你的问题,得到结果后,你查看结果中有没有行,如果没有结果,那么数据库中没有这个ID。如果使用 PDO 语句 $stmt->rowCount();
.
$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');
$stmt = $db->prepare("SELECT * FROM table WHERE Code=?");
$stmt->bindValue(1, $id, PDO::PARAM_INT); // or PDO::PARAM_STR
$stmt->execute();
$row_count = $stmt->rowCount();
if ($row_count > 0) {
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
//results are in $results
} else {
// no result, no such an ID, return the error to the user here.
}
不使用 mysql_* 函数的另一个原因:http://php.net/manual/en/migration55.deprecated.php