我正在学习php,现在我正在计算dbs。正在跟进YT的教程并陷入以下困境:
“从表格中检索所有记录”
具体来说,我可以连接到我的数据库没有问题,但是当我执行选择查询时它什么都不打印
这是我的代码......
<?php
//error_reporting(0);
require 'connect.php';
$result = $db->query("SELECT * FROM sample-objects");
//$result = mysqli_query($db, "SELECT * FROM sample-objects");
print_r($result);
?>
和我的连接脚本
<?php
$db = new mysqli('localhost','root','','test');
// echo $db->connect_errno,"\n";
if ($db->connect_errno)
{
echo "error: ",$db->connect_error; /* Imprime descripción de error de DB */
//die("Site offline");
}
?>
我没有从“connect.php”收到任何错误,我的数据库中有2条记录(来自phpmyadmin)
感谢任何帮助,谢谢:)
答案 0 :(得分:1)
检查了查询中的错误后,系统会在包含连字符的表名中发出错误信号:
SELECT * FROM sample-objects
^ that is the problem character
其中MySQL正在解释为sample MINUS objects
认为你想在这里做数学。
要么用蜱(小心,那些不是单引号'
)包裹它,如图所示复制/粘贴:
SELECT * FROM `sample-objects`
或使用下划线重命名(在使用此示例之前先重命名表格)
SELECT * FROM sample_objects
参考文献:
mysqli_query()
手册中的示例:
if (!$mysqli->query("SET @a:='this will not work'")) {
printf("Error: %s\n", $mysqli->error);
}
我也注意到你评论了//error_reporting(0);
这实际上会关闭错误报告。您需要将其打开并显示:
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:只应在暂存时进行显示错误,而不是生产。