PHP с ADOdb логическими компиляторами

Привет всем, у меня есть проблема с логическими компараторами в php, когда я использую ADOdb
Потому что, когда я делаю выбор в таблице, например, с CI, результат никогда не бывает NULL, и я не могу просто проверить, существует ли человек перед вставкой

КОД

<?php
include('inc/php/adodb5/adodb.inc.php');
$db = ADONewConnection('mysql'); # eg. 'mysql' or 'oci8', 'postgresql'
$db->debug = true;

// Establecer datos para comunicarse con el Gestor de Bases de Datos.
$server   = "localhost";
$user     = "x";
$password = "x";
$database = "xs";

// Traemos cositas del formulario de index.php
//$user=$_GET["username"];
$fecha = date('Y-m-d H:i:s');
$ci = $_GET["username"];$db->Connect($server, $user, $password, $database) or die ("Se pudrio todo !");

$sql = "SELECT ciInterno_Persona_ciPersona FROM internos WHERE ciInterno_Persona_ciPersona = '".$ci."';";
$rs = $db->Execute($sql);
/////////////////////////
if($rs){
$sql = "INSERT INTO registrointernos VALUES ('', '0', '" .$fecha."', '".$ci."')";
$db->Execute($sql);
}else{
echo '<script language="javascript">alert("CI doesn't exist");</script>';
}
$rs->Close();
$db->Close();

?>

Проблема в том, что результат RS всегда верен, даже когда я ставлю CI, которого нет в таблице

Заранее спасибо за вашу помощь

0

Решение

Это потому что $db->Execute($sql); возвращает производный класс ADORecordSet если запрос выполнен успешно (документация Вот).

Вы должны сделать что-то вроде:

$rs = $db->Execute($sql);
$rows = $rs->GetRows();
if (!empty($rows)) {
// ...
} else {
// ...
}

Или вы можете использовать $db->GetRow($sql) вместо $db->Execute($sql),

1

Другие решения

Решено, спасибо за ответы.

КОД********

$sql = "sqlSentence";
$rs = $db->Execute($sql);
if($rs->fields(0)){
}

Решение состоит в том, что вы должны взять то, что возвращает sql, выбрать позицию и провести логическое сравнение.
поэтому он сохраняется в $ rs, но $ rs похож на массив, поэтому вы должны указать позицию в моем случае 0. и его работа отлично

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector