Php 从MySQL数据库中回显一些东西
我试图从我的数据库中找到一个有答案的问题。我只想从数据库中得到一件事,而不是一行。我原以为这会管用,但结果是:资源id 4是否有人能解释我遗漏了什么 谢谢:Php 从MySQL数据库中回显一些东西,php,mysql,Php,Mysql,我试图从我的数据库中找到一个有答案的问题。我只想从数据库中得到一件事,而不是一行。我原以为这会管用,但结果是:资源id 4是否有人能解释我遗漏了什么 谢谢: <?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = ''; $conn = mysql_connect($dbhost, $dbuser, $dbpass); mysql_select_db('lotto'); $
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db('lotto');
$sql = 'SELECT id, vraag, AntwA, AntwB, AntwC, AntwD FROM vraag1';
$test = mysql_query($sql);
echo $test;
?>
使用mysqli而不是mysql
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
mysqli_select_db('lotto');
$sql = 'SELECT id, vraag, AntwA, AntwB, AntwC, AntwD FROM vraag1';
$test = mysqli_query($sql);
echo $test;
?>
您需要添加以下内容:
while($row = mysql_fetch_array($result)){
echo $row['id'];
echo $row['vraag'];
echo $row['AntwA'];
echo $row['AntwB'];
echo $row['AntwC'];
echo $row['AntwD'];
}
对于select函数,mysql\u查询在成功时返回资源,或在出错时返回FALSE。 那么你的任务书呢
$test = mysql_query($sql);
将资源分配给$test
如果您想将数据放在资源中,您可以这样做
while($row= mysql_fetch_assoc($test)):
print_r($row);
endwhile;
您还可以访问$row['column_name']
如果只想返回一行,可以在查询中执行此限制
$sql = 'SELECT id, vraag, AntwA, AntwB, AntwC, AntwD FROM vraag1 limit 1';
就像在互联网上说的至少10000次,永远不要使用MySQL!如果你想通过互联网上的教程学习新的东西,不要使用旧的
我建议使用PDO,它是PHP中的现代API,正确地使用它时,它会更加安全!但是你也可以使用MYSQLI,它更类似于MYSQL
您必须从返回数组导出数据:
使用PDO:
$db = new PDO ("mysql:host=".$hostname.";dbname=".$dbname, $username, $password);
$query = $db -> prepare ("SELECT * FROM vraag1");
$query -> execute (array ());
$rows = $query -> fetchAll (PDO::FETCH_ASSOC);
foreach ($rows as $row)
{
echo $id = $row["id"];
echo $vraag = $row["vraag "];
echo $AntwA = $row["AntwA "];
echo $AntwB = $row["AntwB "];
echo $AntwC = $row["AntwC "];
echo $AntwD = $row["AntwD "];
}
使用MYSQLI:
$db = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
$query = "SELECT * FROM vraag1";
$rows = mysqli_query($db, $query);
while($row = mysqli_fetch_assoc($rows))
{
echo $row["id"];
echo $row["vraag"];
echo $row["AntwA"];
echo $row["AntwB"];
echo $row["AntwC"];
echo $row["AntwD"];
}
首先,您正在使用的mysql函数已经贬值,不再受支持。您应该在准备好的语句中使用mysqli或pdo
<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "lotto";
// Create connection
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT id, vraag, AntwA, AntwB, AntwC, AntwD FROM vraag1";
$test = mysqli_query($conn, $sql);
if (mysqli_num_rows($test) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($test)) {
echo "ID : ".$row['id']."<br>";
echo "vraag :".$row['vraag']."<br>";
echo "AntwA :".$row['AntwA']."<br>";
echo "AntwB :".$row['AntwB']."<br>";
echo "AntwC :".$row['AntwC']."<br>";
echo "AntwD :".$row['AntwD']."<br>";
}
} else {
echo "no results found";
}
mysqli_close($conn);
?>
停止使用mysql_*函数。另外,您缺少的是$test是一个查询结果集,而不是可以回显的字符串。看看警告:mysqli_select_db需要2个参数,其中1个在第15行的C:\xampp\htdocs\Informatica\SE.php中给出警告:mysqli_query需要至少2个参数,1在第17行的C:\xampp\htdocs\Informatica\SE.php中给出,您的代码仍然无法修复原始版本的问题,并引入了新版本。mysqli不是mysqlFirst的克隆,它是mysql\u fetch\u assoc,第二,mysql_*函数在PHP5中被弃用,在PHP7中完全缺失,鼓励人们继续使用它们对任何人都没有好处。我采用了他目前的代码风格,因为他想要一个答案,而不是重新编写他的全部代码!与其抱怨,不如添加一个答案,指出你的答案需要改进,而不是抱怨。如果你认为是这样的话,我建议你开发一种更厚的皮肤。不太清楚为什么这被否决了,这在技术上是正确的,但你也不应该鼓励人们继续使用过时的mysqlfunctions@GordonM也许是因为他鼓励人们使用降价函数而被否决了?我会从now@MasivuyeCokile大概但如果是这样的话,你会认为选民会有礼貌地留下这样的评论。没有评论的否决票为什么没有什么帮助。好吧,@GordonM,这已经成为一种新的文化,所以,人们dv和离开,看到每天,答案只是得到否决票,没有评论为什么他应该使用PDO?@MasivuyeCokile为什么他不应该?!别误会,我并不是说他不应该使用PDO,但是OP看起来很适合mysql,所以我们应该指导他使用正确的API。。记住mysqli也支持预先准备好的语句。@MasivuyeCokile对不起,我真的理解错了:D我同意你对mysqli的看法,我个人认为PDO比mysqli更干净,这就是为什么我建议:也许他还不知道PDO!我也会更新我的答案:p thx。太好了,不要改变你的答案,只需添加两种方法,这样他就可以选择: