私は自分のコードで一日中バグを追いかけてきました。これがその長短です:
クエリ文字列を介して渡される変数があり、MySQLiクエリでその変数を使用したいと思います。A-のように:
$variable;
$info = dbConnect('query');
$eInfo = "SELECT *
FROM tablename
WHERE fieldname = '$variable%'";
$eiData = $info->query($eInfo) or die(mysqli_error());
$eInfo = $eiData->fetch_assoc();
強調されるのは、変数名の後の%です。私はPHPの専門家ではありませんが、しばらく前にこのトリックを取り上げたことを覚えています。これは、開発中の新しいWebサイトを除くすべてのDB駆動型Webサイトで機能しました。
上記のクエリは、テーブルからデータを返しません。
しかし...
次のように%を省略した場合:
$variable;
$info = dbConnect('query');
$eInfo = "SELECT *
FROM tablename
WHERE fieldname = '$variable'";
$eiData = $info->query($eInfo) or die(mysqli_error());
$eInfo = $eiData->fetch_assoc();
クエリが実行され、データが取得されます。
構文「$variable%」を使用して変数を使用したいクエリを作成した後、これが機能しなくなるのはなぜですか?%('$ variable')を削除するだけで、A-OKで動作するようになり、完全に困惑します。
価値があるので、私は専用サーバーを実行し、suPHPが最近インストールされました。それがここで意味をなすのに役立つ可能性がリモートにある場合(PHP 5.2.17が私の現在のバージョンです)。
繰り返しになりますが、私はPHPの専門家ではありませんが、MySQLiクエリで行った古いサイトのコードを確認した後、クエリに変数を追加するときに%が常に存在していました。
私はここの水で完全に死んでいます。あなたが提供できるどんな助けも、それが説明に反するほどめちゃくちゃに感謝されるでしょう。