Php 无法从表中选择,但我可以插入和创建?

Php 无法从表中选择,但我可以插入和创建?,php,mysql,sql,select,mysqli,Php,Mysql,Sql,Select,Mysqli,我对mysql有一个非常奇怪的问题。我可以插入和创建表。但是,我无法选择任何内容,在我尝试时,它不会显示任何错误,它只是回显我的行“error:” 但是当我使用这个函数插入数据库时 $query = "CREATE TABLE IF NOT EXISTS $regNr ( `id` MEDIUMINT NOT NULL AUTO_INCREMENT, `mail` INT NOT NULL , `price` INT NOT NULL , `views` INT NOT NULL , `the_

我对mysql有一个非常奇怪的问题。我可以插入和创建表。但是,我无法选择任何内容,在我尝试时,它不会显示任何错误,它只是回显我的行“error:”

但是当我使用这个函数插入数据库时

$query = "CREATE TABLE IF NOT EXISTS $regNr ( `id` MEDIUMINT NOT NULL AUTO_INCREMENT, `mail` INT NOT NULL , `price` INT NOT NULL , `views` INT NOT NULL , `the_date` DATE NOT NULL , `time` VARCHAR(5) NOT NULL, PRIMARY KEY (id) )";
runQuery($query);

function runQuery($todo) {
   global $servername, $username, $password, $dbname;
   // Create connection
   $conn = new mysqli($servername, $username, $password, $dbname);
   // Check connection
   if ($conn->connect_error) {
       die("Connection failed: " . $conn->connect_error);
   }
   //todo
   $sql = $todo;

   if ($conn->query($sql) === TRUE) {
       echo "done";
   } else {
       echo "Error: " . $conn->error;
   }
   $conn->close();
}
它工作得很好。我做错了什么?!这快把我逼疯了

$row = $result->fetch_array(MYSQLI_NUM);
printf ("%s (%s)\n", $row[0]);
失败时返回FALSE。要成功选择、显示、描述或 解释查询mysqli_query()将返回一个mysqli_结果对象。对于 其他成功的查询mysqli_query()将返回TRUE

按照这个条件

if ($conn->query($sql) === TRUE) {
您可以从查询中获得
mysqli_结果
,该结果不等于TRUE,并且您总是进入错误状态

if ($conn->query($sql) === TRUE) {
要从查询中获取数据,请使用

$row = $result->fetch_array(MYSQLI_NUM);
printf ("%s (%s)\n", $row[0]);
要获取错误表单查询,我们使用
$conn->error
not
$result->error
它需要连接变量,而不是结果变量

阅读

$row = $result->fetch_array(MYSQLI_NUM);
printf ("%s (%s)\n", $row[0]);
失败时返回FALSE。要成功选择、显示、描述或 解释查询mysqli_query()将返回一个mysqli_结果对象。对于 其他成功的查询mysqli_query()将返回TRUE

按照这个条件

if ($conn->query($sql) === TRUE) {
您可以从查询中获得
mysqli_结果
,该结果不等于TRUE,并且您总是进入错误状态

if ($conn->query($sql) === TRUE) {
要从查询中获取数据,请使用

$row = $result->fetch_array(MYSQLI_NUM);
printf ("%s (%s)\n", $row[0]);
要获取错误表单查询,我们使用
$conn->error
not
$result->error
它需要连接变量,而不是结果变量

Read

它只显示“Error”,因为您的
查询
成功并返回一个
mysql对象
,该对象不等于
True
,因此它不会回显
done

见()

失败时返回FALSE。要成功选择、显示、描述或 解释查询mysqli_query()将返回一个mysqli_结果对象。对于 其他成功的查询mysqli_query()将返回TRUE

使用以下代码更改您的代码以使其正常工作:

   if ($conn->query($sql) === FALSE) {
       echo "Error: " . $conn->error;
   } else {
       echo "done";
   }
基本上是将if转过来,以便它检查是否为FALSE

很可能您还希望将结果存储在变量中,如:

   if ($result = $conn->query($sql) === FALSE) {
稍后使用
$row=$result->fetch_array()
$row=$result\u fetch_assoc()
来获取数据。

它只显示“Error”,因为您的
查询
成功,并返回一个
mysql对象,该对象不等于
True
,因此它不会回显
完成的

见()

失败时返回FALSE。要成功选择、显示、描述或 解释查询mysqli_query()将返回一个mysqli_结果对象。对于 其他成功的查询mysqli_query()将返回TRUE

使用以下代码更改您的代码以使其正常工作:

   if ($conn->query($sql) === FALSE) {
       echo "Error: " . $conn->error;
   } else {
       echo "done";
   }
基本上是将if转过来,以便它检查是否为FALSE

很可能您还希望将结果存储在变量中,如:

   if ($result = $conn->query($sql) === FALSE) {

稍后使用
$row=$result->fetch\u array()
$row=$result\u fetch\u assoc()
获取数据。

谢谢!也非常感谢fetch_array()!工作太久了,看不到显而易见的东西!非常感谢。也非常感谢fetch_array()!工作太久了,看不到显而易见的东西!