gpt4 book ai didi

php - 在数据库中选择后没有返回

转载 作者:太空宇宙 更新时间:2023-11-03 12:14:49 25 4
gpt4 key购买 nike

我尝试使用此查询返回 id_selecao:

SELECT id_selecao FROM selecao WHERE nome = 'Brasil'

但没有任何反应,但应该返回 id_selecao = 3。但是,如果我执行此查询:

SELECT id_selecao FROM selecao WHERE nome = ''

返回正确的 id,即 id_selecao = 4

这是我的数据表:

id_selecao  nome
1 Portugal
2 Espanha
3 Brasil
4
5 Portugal
6 Espanha
7 Brasil

这是我的 php 文件:

初始化数据库

<?php
include 'services.php';

function leFicheiroSelecoes(){
$file_handle = fopen("selecoes.txt", "r");
while (!feof($file_handle)) {
$line = fgets($file_handle);

mysql_set_charset("utf8");
insertSelecoes($line);
}
fclose($file_handle);
}
leFicheiroSelecoes();
disconnect();
?>

服务.php

<?php
/* INCLUDES */
require('config.php'); //contains the user, pass, dbname to connect and access to database
require('database.php');

/* DATA BASE */
$db = new database($dbhost, $dbuser, $dbpass, $dbname);



function insertSelecoes($nome){
global $db;
$query = "INSERT INTO selecao (nome) VALUES ('$nome');";
$db->setQuery($query);
$db->query();
}

function disconnect(){
global $db;
$db->Disconnect();
}
?>

数据库.php

<?php
/*
* Classe que gere a base de dados
*/
class database{

var $sql = "";
var $cursor = null;
var $resource = "";

function database($host, $user, $password, $db_name) {
$this->Connect($host, $user, $password, $db_name);
}

function Connect($host, $user, $password, $db_name) {
$this->resource = mysql_connect($host, $user, $password) or die ('Error_connecting_to_my_sql');
if (!$this->resource) {
die("Problema na Conex&atilde;o com Base de Dados 1");
}
elseif (!mysql_select_db($db_name,$this->resource)) {
die("Problema na Conex&atilde;o com a Base de Dados 2");
}
}

function Disconnect(){
return mysql_close($this->resource);
}

function query(){
$this->cursor = mysql_query($this->sql);
if(!$this->cursor){
die("Problema em executar a consulta na Base de Dados".mysql_error());
//return false;
}
return $this->cursor;
}

function setQuery($sql){
$this->sql=$sql;
}

function loadResult() {
if (!($result = $this->query())) {
return null;
}
$ret = null;
if ($row = mysql_fetch_row( $result )) {
$ret = $row[0];
}
mysql_free_result( $result );
return $ret;
}

function loadObjectList( $key='' ) {
if (!($result = $this->query())) {
return null;
}
$array = array();
while ($row = mysql_fetch_object( $result )) {
$array[] = $row;
}
mysql_free_result( $result );
return $array;
}

}

?>

我看不出哪里出错了,找了好几个小时了。谁能帮帮我。

最佳答案

$line = fgets($file_handle);

这将返回该行,包括末尾的换行符。来自 documentation :

Reading ends when length-1 bytes have been read, or a newline (which is included in the return value), ...

如果你想将其传递给select 查询,你应该事先切断换行符,例如:

$line = trim ($line);

如果这不起作用,请执行以下操作:

select concat ('[', nome, ']') from selecao where id_selecao = 3

检查数据库表中是否有多余的东西。

关于php - 在数据库中选择后没有返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22676553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com