Php 将代码MySQL更新为MySQLi

Php 将代码MySQL更新为MySQLi,php,mysql,mysqli,Php,Mysql,Mysqli,php向我显示了一个开始使用MSQLI函数的错误。正确的使用方法是什么?现在,请尝试根据php.net编写文档,但我无法选择表格 连接到数据库 function ConectarBD() { $vServidor="localhost"; $vUsuarioBD="root"; $vClaveBD=""; $vNombreBD="admin"; $vConexion=mysql_connect($vServidor, $vUs

php向我显示了一个开始使用MSQLI函数的错误。正确的使用方法是什么?现在,请尝试根据php.net编写文档,但我无法选择表格

连接到数据库

    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();
  }
}
函数CrearListados($vTabla){
$vListado=array();
如果(!ConectarBD()){
模具(“连接错误”);
返回false;
}否则{
$vConsulta=“从省选择*”;
$vRegistros=mysql\u查询($vConsulta);
如果(!$vRegistros){
回显“MySQL错误:”.MySQL_Error()。
; 返回false; }否则{ $i=1; while($vcadalistro=mysql\u fetch\u row($vRegistros)){ $vListado[$i]['ID']=$vCadaRegistro[0]; $vListado[$i]['provincia']=utf8_编码($VCADAGistro[1]); $i++; } 返回$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>

省政府

切换到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;
}

您没有使用mysqli。。。当您在mysqli的构造函数中指定dbname时,它可能会起作用。请发布您的错误,运行quries时是否包含ConectarBD文件,请使用pdo或mysqli而不是mysql。更新了我的问题,请检查PHP的mysql是否已弃用,您需要切换到mysqli或pdo。有大量的问答或其他教程可以帮助你解决这个问题。在
mysql\u connect
中添加一个
i
是不行的,你需要重写与mysql相关的所有内容。这让我头疼。根据您的回答,我将不得不重新编写所有函数:Supdate文件,但似乎有些东西一直在失败。注意,我认为这是服务器的问题,当我回到家时,我会尝试使用localhost
mysqli_connect($vServidor、$vUsuarioBD、$vClaveBD、$vNombreBD)尝试使用数据库直接连接。见我的编辑谢谢你的时间。我已经更新了功能,但错误仍然存在。
用户访问被拒绝
这是无效凭据的错误,我只能建议您确保信息正确并且用户应该有权限数据库名称中有空格:@功能已更新并上载到站点。检查,因为我没有选择数组。我检查了表名和字段,结果很好。参观