1

私はテーブル行から指定された量の文字のみをフェッチする mysqli 文字列操作関数をインターネットで検索してきました。私が見つけた最も近いものは、次のように機能する mysql LEFT() でした:

"SELECT LEFT(content, 20) FROM  articles WHERE id='1'"

したがって、これが行うことは、この行から20文字しか取得できないことですが、コードでこれを実行しようとすると、これがこれです

$sql = "SELECT id,byid,LEFT(content, 25),date_added FROM articles WHERE id='1' LIMIT 10";
$query = mysqli_query($database, $sql);

コンテンツ以外のすべての行を取得できます。いくつかの調査を行ったところ、LEFT(row, int) のすべての例は mysql の例であり、mysqli ではないことがわかりました。現在、php で必要なものを達成できます。 substr(); フェッチされるコンテンツは非常に大きく、ブラウザーで使用されない大量のデータをダウンロードして Web サイトの速度を低下させたくありません。

ありがとうございました :)

4

1 に答える 1

3
  1. 使用しているデータベースはまだ MySQLです。mysqli は、mysql データベースを操作するための PHP 関数のセットにすぎません。
  2. このばかげた問題を解決するには、エイリアスを追加するだけです

    SELECT id,byid,LEFT(content, 25) as cut,date_added FROM articles WHERE id='1' LIMIT 10";
    
  3. mysqliで本当に必要なのは、準備済みステートメントです。変数は直接クエリに入れるべきではなく、プレースホルダー経由でのみ入れるべきです

于 2013-08-13T13:17:48.273 に答える