2012-01-15 68 views
0

我想檢查一些數據,如果ti仍然在數據庫上。例如:在我的表單中有兩個表單域。 1)網址2)名稱。所以我想檢查會話用戶是否已經在數據庫中有'url'和'name',那麼它必須顯示錯誤消息。這裏只是幾個mysql代碼..Php Mysql Select命令的問題

<?php 
$url  = mysql_real_escape_string(trim($_POST['url'])); 
$name  = mysql_real_escape_string(trim($_POST['name'])); 
$uname = $_SESSION['uname']; 

$check_add = mysql_query("SELECT * FROM add_fav WHERE url ='$url' AND name= '$name' 
AND uname = '$uname' "); 

$num  = mysql_num_rows($check_add); 

if($num > 0) 
      $err[] = "Already exist"; 
?> 

但它沒有檢查。可能是我的查詢問題。
感謝提前:)

+0

歡迎堆棧溢出!您在查詢中沒有執行任何錯誤檢查,因此難怪沒有出現,並且如果查詢失敗,您的腳本將中斷。如何做到這一點在[mysql_query()'](http://php.net/mysql_query)手冊或本[參考問題。](http://stackoverflow.com/questions/6198104/reference -what-a-perfect-code-sample-using-the-mysql-extension) – 2012-01-15 18:13:10

+0

你只是展示你的代碼的一個片段,或者你真的忘記做一個mysql_connect嗎? – bjelli 2012-01-15 18:15:21

+0

@bjelli它已經連接。 – 2012-01-15 18:22:11

回答

0

嘗試和調試腳本,以確保你確實有值,你的SELECT語句...呼應了你的變量,以確保他們擁有數據的最新資訊,你做對了你之前選擇語句,如果他們是空的確保你實例化數據庫連接之前運行mysql_real_escape_string或它不會工作...

+0

好吧,打印後我沒有得到任何數據與我的查詢(回聲)..所以它應該是什麼樣子? – 2012-01-15 18:34:18

0

你有沒有嘗試,如果你有一個與MySQL打開連接?

有你直接在MySQL嘗試此查詢(如在phpMyAdmin?)

您應該使用的,而不是mysql_ * PDO,它的方式更好的simplier。

下面是一個例子,即,在代碼中,應該工作(這取決於然後如果你的表是喜歡你告訴我們):

<?php 
$oPdo = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'login', password'); 

// here's your query : 
$oStmt = $oPdo->prepare ('SELECT * FROM add_fav WHERE url = :url AND name= :name AND uname = :uname'); 

$oStmt->execute (array (
    'url' => trim($_POST['url']), 
    'name' => trim($_POST['name']), 
    'uname' => $_SESSION['uname'] 
)); 

if (count($oStmt->fetchAll(PDO::FETCH_ASSOC)) > 0) 
    $err[] = "Already exist"; 
?> 
+0

well @ cx42net我正在嘗試.. – 2012-01-15 18:24:36