这是我与数据库的连接
<?php
// this will avoid mysql_connect() deprecation error.
error_reporting( ~E_DEPRECATED & ~E_NOTICE );
// but I strongly suggest you to use PDO or MySQLi.
define('DBHOST', 'localhost');
define('DBUSER', 'root');
define('DBPASS', '');
define('DBNAME', 'dbtest');
$conn = mysql_connect(DBHOST,DBUSER,DBPASS);
$dbcon = mysql_select_db(DBNAME);
if ( !$conn ) {
die("Connection failed : " . mysql_error());
}
if ( !$dbcon ) {
die("Database Connection failed : " . mysql_error());
}
这是从数据库中检索数据的简单代码
<?php
require_once 'dbconnect.php';
$query="SELECT * FROM `users`";
if($is_query_run=mysql_query($query))
{
echo "query executed<br>";
while($query_execute=mysql_fetch_array($is_query_run));
{
echo 'sql is running';
echo '<tr><td>'.$query_execute['userName'].'</td><td>'.$query_execute['userEmail'].'</td></tr';
}
}
else
{
echo "query not executed";
}
?>
但是我仍然无法检索数据
它没有从数据库中给我任何数据,即使我已经为它设置了几个用户名和useremail ....可以做注册和登录,但不能将其作为echo..wonder检索出来...请任何人都可以帮我? 结果只出来了query executed
sql is running
答案 0 :(得分:1)
问题出在这一行:
while($query_execute=mysql_fetch_array($is_query_run)); // <<< semi-colon
注意结束分号?它“结束”该语句并且不会抛出错误,因为它被认为是PHP和其他语言中的有效语句。
该循环内的任何内容都不会显示,您需要删除它。
你使用的api显然有效,因为有2个echo出现了。
参考:
“在C或Perl中,PHP要求在每个语句的末尾用<分号>>终止指令。一段PHP代码的结束标记自动表示分号;你不需要用分号来终止PHP块的最后一行。块的结束标记将包括紧接着的新行(如果有的话)。“
您还应该考虑切换到mysqli或PDO api; mysql_ api已弃用,自PHP 7起已删除。
如果用户互动发挥作用,请考虑使用准备好的声明。
编辑#2:
我再次通过你的代码时发现了别的东西。 '</td></tr';
在>
缺少'</td></tr>';
,应该读作<table></table>
并且不确定您是否有'</td></tr';
个标记,除非您没有在问题中包含这些标记。
如果{{1}}只是一个糟糕的粘贴或者是您真实代码的一部分,那么它是未知的。
如果它是您真实代码的一部分,那么这将破坏/影响HTML和输出。
答案 1 :(得分:0)
由于每个人都建议您使用mysqli而不是mysql,这是使用mysqli的简单工作示例。
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "dbtest";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM `users`";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "UserName: " . $row["userName"]. " Email: " . $row["userEmail"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
希望这有效。
答案 2 :(得分:-1)
使用mysqli而不是mysql。
mysqli代表mysql改进。
mysqli的主要有用功能是:
面向对象的界面, 支持准备好的陈述, 支持多个陈述, 支持交易, 增强的调试功能, 嵌入式服务器支持。