2015-05-18 3 views
-1

Я просто хочу определить, существует ли столбец в таблице с num_rows.Alter table if num rows returns 0

Так что если имя пользователя уже находится в базе данных, оно должно просто изменить таблицу. В настоящее время он просто создает новый столбец, когда он действительно должен повторять, что это имя пользователя уже существует в базе данных. Могу ли я на самом деле сделать это так?

$selectdest = "SELECT dest FROM tbabonnenten WHERE dest='$user'"; 
$result = $conn->query($selectdest); 
$destination = $result->num_rows; 
$aff_rows=$conn->affected_rows; 
$result=$conn->query($selectdest); 

if($conn->affected_rows==1){ array_push($errarr,"Username \"$username\" already exists"); } 

ответ

0
<?php 
    global $conn; 
    $DB_HOST="localhost"; 
    $DB_USERNAME="******"; 
    $DB_PASSWORD="**********"; 
    $DB_DATABASE="************"; 

    $conn=new mysqli($DB_HOST,$DB_USERNAME,$DB_PASSWORD,$DB_DATABASE); 
    if($conn->connect_error){ 
     die("Connection failed:".$conn->connect_errno.' '.$conn->connect_error); 
    } 

    $sql="SELECT username FROM tbl_admin WHERE username='hengecyche'"; 
    $result=$conn->query($sql); 
    //echo $result->num_rows; 
    //echo $conn->affected_rows; 
    //both are correct since you are using mysqli 
    if($result->num_rows!=0){ 
     $rows=$result->fetch_assoc(); 
     echo $rows['username']; 
    }else{ 
     echo "User already Exists"; 
    } 
?> 

вы можете использовать $ result-> num_rows, чтобы проверить, если любая строка изменяется, и если изменилось вторя сообщение об ошибке, если не я добавил код, чтобы отобразить поля имен

+0

Таким образом заменить $ результат = $ conn-> запрос ($ selectdest); с $ aff_rows = $ conn-> affected_rows ;? –

+0

сначала используйте $ result = $ conn-> query(); $ result сохранит фактические значения, но $ conn-> affected_rows даст вам затронутые строки – hengecyche

+0

теперь я получаю эту ошибку: «Не удалось получить mysqli» –

0

просто используется для чтения ваш код я имел некоторые предложить вам

>> SELECT dest FROM tbabonnenten WHERE dest='$user' 

вам нужно изменить его

>> SELECT count(dest) as total FROM tbabonnenten WHERE dest='$user' 

потому что вы хотите знать, сколько предметов в этом случае.

Я предполагаю, что бегите в стену компьютера, чтобы убедиться, thx.

+0

Я сделал это, и он все еще создает новую запись, когда пользователь существует –

+0

$ destination = $ result-> num_rows; эта строка, может быть, нужна для обмена так, как этот $ destination = "{$ result [" total "]}", чем вы можете получить счет в этом sql, thx –

1

should't вы просто проверить

if ($destination === 0) {... 

вместо

if ($destination = 0) { 
+0

Когда я это делаю, он говорит, что у меня пустой запрос –