2016-05-22 3 views
-4

Я искал тщательно и ничего не работает; У меня есть этот код здесь, который помещается в мою базу данных, но проблема в том, что я пытаюсь запустить условие, которое проверяет, существует ли строка с помощью функции mysqli_num_rows, но она фактически не работает. Я пробовал много разных версий и других функций, таких как mysqli_fetch_row, но ничего не работает. Вот мой код:PHP Проверка mysqli_num_rows не работает

if (!empty($_POST)) { 
    $db_conx=""; 

    $name = $_POST['name']; 
    $module = $_POST['module']; 
    $secret = $_POST['secret']; 
    $uid1 = $dmt->user['uid']; 
    $queryA = "INSERT INTO table_a (uid1,name,module,secret) VALUES ('$uid1','$name','$module','$secret')"; 
    $resultA = mysqli_query($db_conx,$queryA); 
    $queryB = "SELECT 1 FROM table_a WHERE name='$name' LIMIT 1"; 
    $resultB = mysqli_query($db_conx,$queryB); 
    $resultC = mysqli_query($db_conx,$queryB); 
    $query = mysqli_query($db_conx,"SELECT * FROM table_a WHERE name='$name'"); 
    if (empty($name)||empty($module)||empty($secret)) { 
     echo "Oops! Can't leave any field blank <br />"; 
     exit(); 
    } elseif(mysqli_num_rows($query) > 0){ 
     echo "name already exists."; 
     exit(); 
    } elseif ($db_conx->query($queryA) === TRUE) { 
     echo "New record created successfully."; 
     exit(); 
    } else { 
     echo "Error: " . $queryA . "<br>" . $db_conx->error; 
     exit(); 
    } 
} 

Как видите, запрос кажется запущенным, но на самом деле не выполняет то, что сказано.

+0

* Как * делает это, ни работы ? Вы получили сообщение об ошибке? Что вы получаете? –

+0

Вы никогда не проверяете результат '$ query' или любой другой результат запроса, так как вы уверены, что он работает правильно? Вы вводите SQL для одного, так что это может быть причиной. (это также означает, что ваш код невероятно небезопасен) – h2ooooooo

+0

Некоторый разумный отступ кода был бы хорошей идеей. Это поможет нам прочитать код и, что более важно, это поможет ** вы отлаживаете код ** [Взгляните на стандарт кодирования] (http://www.php-fig.org/psr/psr-2/) для вашей собственной выгоды. Вас могут попросить изменить этот код через несколько недель/месяцев, и в конце вы поблагодарите меня. – RiggsFolly

ответ

0

Первая строка кода внутри IF разрушает переменную, которую вы используете, чтобы держать соединение с базой данных

if (!empty($_POST)) { 
    $db_conx="";    // get rid of this line 

Так в основном ничего используя mysqli API будет работать.

ТАКЖЕ:

Добавить это как первые 2 строки сценария вы пытаетесь отлаживать

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

, как вы, очевидно, не readng ваш php error log

Смежные вопросы