2014-04-28 184 views
-2

如果数据库中存在一条记录,那么我有问题。我想它的使用mysqli_num_rowsphp mysql检查是否存在记录

<?php 

$mysqli = new mysqli("xxxxxx", "xxxxx", "xxxxxx", "xxxxx"); 

/* check connection */ 
if ($mysqli->connect_errno) { 
    die("Connect failed: %s\n" . $mysqli->connect_error); 
} 

$stmt = $mysqli->prepare("INSERT INTO TEST_CHARS (CHAR_NAME) VALUES(?)"); 
$stmt->bind_param('s', $nick); 
$nick = $_POST['nick']; 
$query = mysqli_query("SELECT CHAR_NAME FROM TEST_CHARS WHERE CHAR_NAME ='$nick';"); 
$count = mysqli_num_rows($query); 

if ($count > 0) 
{ 
    die('Error, character exist in database'); 
} 
else 
{ 
    $stmt->execute(); 
    echo "Character $nick was added successfully"; 
} 
$mysqli->close(); 

?> 
+1

为什么首先你绑定'$ nick'之后,你定义这个变量?它不应该反之呢? –

+0

我的错误,改订单后仍然不起作用。任何想法 ? – Mioduch

+0

用mysql_query()执行的实际SQL是什么? (SELECT CHAR_NAME FROM TEST_CHARS WHERE CHAR_NAME ='nick';)($ nick的值是多少) – bestprogrammerintheworld

回答

-1

不正确的问题,不妨试试:

$query = mysqli_query($mysqli, "SELECT CHAR_NAME FROM TEST_CHARS WHERE CHAR_NAME ='$nick';"); 
+0

谁低估了这一点,这是他的解决方案..所以不要downvote他的实际解决方案? – Naruto

+0

我不知道是谁downvoted这个,但我猜的原因是$ mysql被设置在mysql_query函数里面它不应该。看看文档:http://se1.php.net/mysqli_query – bestprogrammerintheworld

+0

在你给我的链接中,他们使用的方式与我刚刚描述的相同?这里的$ mysqli是链接中的示例中的$ link ..我没有看到区别?还是我理解你错了? – Naruto