2014-09-06 67 views
0

php顯示我開始使用MSQLI函數的錯誤。這將是正確的方式來使用它?現在嘗試和documentaciond根據php.net但我不能選擇表更新代碼MySQL到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時,它可能會起作用。 – 2014-09-06 19:52:31

+0

請發佈你的錯誤,是ConectarBD文件包括你運行quries,請使用pdo或mysqli而不是mysql。 – 2014-09-06 20:10:17

+0

更新了我的問題,請檢查 – nicogaldo 2014-09-08 13:57:56

回答

0

這並不難切換到mysqli的,大部分是相似的:

ConectarBD您未使用的mysqli

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 2014-09-08 16:43:22

+0

'mysqli_connect($ vServidor,$ vUsuarioBD ,$ vClaveBD,$ vNombreBD);'嘗試使用數據庫直接連接。請參閱我的編輯 – meda 2014-09-08 16:50:52

+0

感謝您的時間。我更新了功能,但錯誤仍然存​​在。 – nicogaldo 2014-09-08 17:51:45