如何將php變量放入查詢中?如何編寫使用PHP變量的MySQL查詢?
$shopid = $pdo->query('SELECT shopid FROM `shop` WHERE shopname='$shopname'')->fetchAll(PDO::FETCH_ASSOC);
這不是工作,錯誤消息顯示: 「解析錯誤:語法錯誤,意外 '$ SHOPNAME'(T_VARIABLE)」
如何將php變量放入查詢中?如何編寫使用PHP變量的MySQL查詢?
$shopid = $pdo->query('SELECT shopid FROM `shop` WHERE shopname='$shopname'')->fetchAll(PDO::FETCH_ASSOC);
這不是工作,錯誤消息顯示: 「解析錯誤:語法錯誤,意外 '$ SHOPNAME'(T_VARIABLE)」
沒有
不要插入參數這種方式。您應該使用bindParam
$statement = $db->prepare('SELECT shopid FROM shop WHERE shopname=:shopname');
$statement->bindParam(':shopname', $shopname, PDO::PARAM_STR);
$statement->execute();
你沒有適當的包裝您的查詢。
$shopid = $pdo->query("SELECT shopid FROM `shop` WHERE `shopname`='$shopname'");
不,這太可怕了。你應該使用[bindParam](http://php.net/manual/en/pdostatement.bindparam.php)。此外,你有一個SQL語法錯誤。 –
試試這個:
$查詢= 「選擇shopid從商店,SHOPNAME = '」 $ SHOPNAME。 「'」;
$結果= mysql_query($查詢);
請解釋這個查詢有什麼問題? $ shopname是PHP變量,由商店名稱 – Sandesh
如果$shopname
從不受信任的源來了,你是SQL注入敞開的。爲了解決這個問題,你應該使用PDO的,它是事先準備好的聲明API:
$query = $pdo->prepare("SELECT shopid FROM shop WHERE shopname = ?");
$query->bindValue(1, $shopname, PDO::PARAM_STR);
$query->execute();
$shopid = $query->fetchAll(PDO::FETCH_ASSOC);
如果你支持的PDO,爲什麼不使用的準備,而且是更安全的。
$stmt = $pdo->prepare('SELECT shopid FROM shop WHERE shopname=:shopname');
$stmt->bindParam(':shopname', $shopname);
$shopname = $yourdefined;
$stmt->execute();
$stmt->bindColumn(1, $shopid);
while($stmt->fetch()){
echo $shopid,PHP_EOL;
}
好了,你也可以使用基本的SQL是這樣的:
$shopid = $pdo->query('SELECT shopid FROM `shop` WHERE shopname=\'{$shopname}\'')->fetchAll(PDO::FETCH_ASSOC);
'...'。 $ shopname。 '...'
使用點加入多於一個字符串
謝謝,但如何檢索值並顯示回顯? 注意:Array to string conversion – alvin890101