2014-07-15 63 views
0

在php腳本中,有一個名爲$partners_location的變量。SQL中的控制流問題

在SQL中有一列名爲plocation

我想要做的是首先檢查plocation列中是否有值與$partners_location的值相匹配。

如果它匹配,那麼我想繼續並從php腳本本身創建一個新表。

對於這種類型的情況,我知道我們需要的是如果其他,但我不知道如何在這裏使用它

這是我一直在努力,由我使用PDO的方式。

$dsn= "mysql:dbname=mydatabase"; 
$name= "root"; 
$password="****"; 
$conn = new PDO ($dsn, $name, $password); 

... 

if($CON = $conn->prepare("SELECT FROM CIDB WHERE plocation='$partners_location'"); 
    $CON->execute();) 
{ 
$tbl=$conn->prepare("CREATE TABLE chat (id INT NOT NULL); 
} 
else 
{ 
$tbl=$conn->prepare("CREATE TABLE xyz (id INT NOT NULL); 
} 

我不認爲這些如果else語句是去上班。

有人可以建議我一些工作嗎?

+1

'我不認爲這些如果else語句要work.'你就來測試一下看看它是否會工作 – bumbumpaw

+0

我知道它不會工作,....它不符合if語句的要求。 – Neeraj

+0

我想你錯過了')「'... – Jesuraja

回答

0

$CON->execute()將返回true即使查詢成功但返回零行。
使用COUNT()來檢查行是否存在。
像這樣:

$CON = $conn->prepare("SELECT COUNT(*) as cnt FROM CIDB WHERE plocation = '$partners_location'"); 
$CON->execute(); 
$row = $CON-> fetch(); 
if($row[0] != '0') 
    $tbl=$conn->prepare("CREATE TABLE chat (id INT NOT NULL)"); 
else 
    $tbl=$conn->prepare("CREATE TABLE xyz (id INT NOT NULL)"); 
0

試試這個:

$CON = $conn->prepare("SELECT COUNT(*) as cnt FROM CIDB WHERE plocation = '$partners_location'"); 
$CON->execute(); 
$row = $CON-> fetch(); 
if($row[0] != '0') 
{ 
    $tbl=$conn->prepare("CREATE TABLE chat (id INT NOT NULL)"); 
} 
else 
{ 
    $tbl=$conn->prepare("CREATE TABLE xyz (id INT NOT NULL)"); 
} 

你錯過了")