php: mysql 数据库连接正常但无法执行查询

标签 php mysql database mysqli

我正在学习 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 这样做)

任何帮助将不胜感激,谢谢:)

最佳答案

检查查询中的错误会在包含连字符的表名中发出错误信号:

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

旁注:显示错误只应在试运行中进行,绝不能在生产中进行。

关于php: mysql 数据库连接正常但无法执行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34191473/

相关文章:

php - 如何将jquery/php导入android studio

php - mysql无法显示中文

mysql - 如何为每个 MySQL 记录添加额外的单词

mysql - 如何连接 MySql 中的值?

php - SQL:显示来自数据库的最后消息

python - 为python写入Redis中的几个数据库

php - “id不能为null。”尝试从ElasticSearch删除时出错

php - 从多个条件中删除

mysql - 使用大量队列工作人员时如何避免大量连接?

android - 一个 SQLite 数据库中的多个表