簡體   English   中英

建立我的phpmyadmin的mysql查詢在PHP中沒有WHERE子句

[英]Mysql query built my phpmyadmin doesn't work in PHP with WHERE clauses

只是嘗試選擇沒有注釋的所有行,或者注釋<5個字符。

從基礎開始,這有效:

$query= "SELECT * FROM `comments`";
$result = mysql_query($query);

什么不起作用是:

$query = "SELECT * FROM `comments` WHERE `comment` = ''";

要么

$sql = "SELECT * from comments WHERE LENGTH(comment) < 5 LIMIT 30";

我已經設置了限制5,因為當我對“空”注釋執行COUNT時,它表示那里有4個字節。 該列不是NULL(不要怪我,我沒寫它!)

我甚至嘗試使用phpmyadmin將“空”值更改為單詞“chicken”,然后運行

因此,我使用phpmyadmin將所有注釋<4個字符的實例更改為單詞“chicken”。

$query = "SELECT * FROM `comments` WHERE `comment` = 'chicken'";

與上述所有錯誤一樣,它會噴出:

您的SQL語法有錯誤; 檢查與MySQL服務器版本對應的手冊,以便在第1行的''附近使用正確的語法

但如果我這樣做

$emptycomment = "chicken";
$query = sprintf("SELECT * FROM `comments` WHERE `comment` = $emptycomment");

查詢無效:'where子句'中的未知列'chicken'

WTF? 但這在phpmyadmin中完美運行! (所有以上測試的穩定和alpha版本)

我還看到別人放的地方:

$query = sprintf("SELECT * FROM `comments` WHERE `comment` = 'chicken'");

再次,上述任何一個都沒有骰子。

愚蠢的是,這些都完全直接作為一個mysql查詢工作,上面甚至由phpmyadmin生成! 我甚至更新了php到5.3.2,安裝的mysql是5.1.52

我已經嘗試按照示例2在這里完全使用變量。 http://php.net/manual/en/function.mysql-query.php

我按照這里的教程: http//www.devshed.com/c/a/MySQL/Null-and-Empty-Strings/3/

我在Stackoverflow瀏覽了大約20篇文章。

現在是上午11點15分。 我從6:30開始。 這里有點沮喪。 謝謝!

$ emptycomment =“chicken”; $ query = sprintf(“SELECT * FROM comments WHERE comment = $ emptycomment”);

你試過打印$ query之后? 你錯過了字符串變量的引號

$query = "SELECT * FROM comments WHERE comment = '" . mysql_real_escape_string($comment) . "'";

我遇到了類似的問題,其中“空”字段不是NULL。 如果你嘗試雞肉會發生什么:

$query = "SELECT * FROM comments WHERE comment LIKE '%chicken%'";

即使你有CR / LF和其他奇怪的“隱形”字符,這也會給你一個匹配。

根據我的經驗,phpmyadmin生成的查詢將引號放在我認為不應該有任何表格名稱的地方,一旦我刪除了它的工作原理。 IE“SELECT * FROM'db'。'table'”不起作用,但“SELECT * FROM table”不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM