構文が間違っています。二重引用符で囲まれた文字列内にピリオドを配置する必要はありません。代わりに、もっと似ているはずです
$query = mysql_query("SELECT * FROM table WHERE the_number LIKE '$prefix%'");
文字列を印刷して、最初のケースと同じであることがわかるようにすることで、これを確認できます。
もちろん、それは良い考えではありません SQLインジェクションの危険性があるため、このように単純に変数をクエリ文字列に挿入します。少なくとも、mysql_real_escape_string
を使用して変数の内容を手動でエスケープする必要があります 、おそらく次のようになります:
$sql = sprintf("SELECT * FROM table WHERE the_number LIKE '%s%%'",
mysql_real_escape_string($prefix));
$query = mysql_query($sql);
sprintf
の最初の引数の内側に注意してください 結果に1回表示されるようにするには、パーセント記号を2倍にする必要があります。