2014-09-06 2 views
0

php показывает мне ошибку, чтобы начать использовать функцию MSQLI. Как будет правильным способом его использовать? Теперь попробуйте и documentaciond согласно php.net, но я не могу выбрать таблицуОбновить код MySQL to MySQLi

Подключение к БД

function ConectarBD() { 
     $vServidor="localhost"; 
     $vUsuarioBD="root"; 
     $vClaveBD=""; 
     $vNombreBD="admin"; 

     $vConexion=mysql_connect($vServidor, $vUsuarioBD, $vClaveBD);   

     if ($vConexion!=false) { 

     $vSeleccionoBD=mysqli_select_db($vConexion,$vNombreBD); 
     if ($vSeleccionoBD!=false) { 

     return true; 
    }else { 
     return false; 
    } 
} 

Выбрать таблицу и получить массив

function CrearListados($vTabla) { 

    $vListado=array(); 

    if (!ConectarBD()) { 
    die ('Error en la conexion'); 
    return false;  

    }else { 

    $vConsulta="SELECT * FROM provincias"; 
    $vRegistros = mysql_query($vConsulta); 
    if(!$vRegistros){ 
     echo 'MySQL Error: ' . mysql_error().'<br />'; 
     return false; 

    }else { 
     $i=1; 
     while ($vCadaRegistro = mysql_fetch_row($vRegistros)){ 
     $vListado[$i]['ID']=$vCadaRegistro[0]; 
     $vListado[$i]['provincia']= utf8_encode($vCadaRegistro[1]); 
     $i++; 
     } 

     return $vListado; 

    } 
    DesconectarBD(); 
    } 
} 

Эта функция использования в signup.php:

<?php  
    $Registros=array(); 
    $Tabla="provincia"; 

    $Registros=CrearListados($Tabla); 

    if (!empty($Registros)){ 
    $cntRegistros=count($Registros); 
?> 

<div class="form-group"> 
    <select class="form-control" name="provincia"> 
     <option value="0">Seleccione una provincia</option> 

     <?php for ($i=1; $i<$cntRegistros; $i++) { ?>      

     <option value="<?php echo $Registros[$i]['ID']; ?>" <?php if (!empty($_POST['provincia']) && $_POST['provincia']==$i) {echo 'selected';} ?> ><?php echo $Registros[$i]['provincia']; ?></option> 
     <?php } } ?>       

    </select> 
</div> 

онлайн: http://www.nicogaldo.com.ar/sesiones/signup.php

редактировать: изменить функцию "MySQL" в "MySQLi", другие изменения должны сделать?

+0

Вы MySQLi не используя ... Возможно, это сработает, когда вы укажете dbname в конструкторе mysqli. –

+0

, пожалуйста, сообщите об ошибке, это файл ConectarBD, который вы используете при запуске quries, используйте pdo или mysqli вместо mysql. –

+0

обновил мой вопрос, пожалуйста, проверьте – nicogaldo

ответ

0

Это не так сложно перейти на Mysqli, большинство из них похожи:

ConectarBD

function ConectarBD() { 
    $vServidor="localhost"; 
    $vUsuarioBD="root"; 
    $vClaveBD=""; 
    $vNombreBD="admin"; 

    $vConexion=mysqli_connect($vServidor, $vUsuarioBD, $vClaveBD, $vNombreBD);   

    /* check connection */ 
    if (mysqli_connect_errno()) { 
     printf("Connect failed: %s\n", mysqli_connect_error()); 
     exit(); 
    } 
    /* select database */ 
    //$vSeleccionoBD=mysqli_select_db($vConexion,$vNombreBD); 

    return $vConexion; 
} 

CrearListados

function CrearListados($vTabla) { 
$conn = ConectarBD(); 
$vConsulta = "SELECT ID, provincia FROM provincias"; 

if ($stmt = mysqli_prepare($conn , $vConsulta)) { 

    /* execute statement */ 
    mysqli_stmt_execute($stmt); 
    /* bind result variables */ 
    mysqli_stmt_bind_result($stmt, $id, $provincia); 

    /* fetch values */ 
    $vListado = array(); 
    while (mysqli_stmt_fetch($stmt)) { 
     //printf ("%s (%s)\n", $id, $provincia); 
     $vListado['ID'][]= $id; 
     $vListado['provincia'][]= utf8_encode($provincia); 
    } 

    /* close statement */ 
    mysqli_stmt_close($stmt); 
} 
/* close connection */ 
mysqli_close($conn); 

return $vListado; 
} 
+0

обновите файл в соответствии с вашим ответом, но кажется, что что-то продолжает терпеть неудачу. Посмотрите [сайт] (http://nicogaldo.com.ar/sesiones/signup.php), я думаю, что это проблема с сервером, когда я вернусь домой, я попробую с localhost – nicogaldo

+0

'mysqli_connect ($ vServidor, $ vUsuarioBD , $ vClaveBD, $ vNombreBD); 'попробуйте напрямую подключиться к базе данных. см. мое редактирование – meda

+0

спасибо за ваше время. Я обновил функции, но ошибка все еще существует. – nicogaldo