二重引用符と一重引用符---sql文の文字列変数から

1120 ワード

phpでmysqlテーブルを操作するとき、CREATE TABLE news(id int(10)unsigned NOT NULL AUTO_という問題テーブル構造に遭遇しました.INCREMENT, title varchar(50) DEFAULT NULL, content text, add_time int(11) DEFAULT NULL, PRIMARY KEY ( id ) );
sql文$sql 1="SELECT*FROM news WHERE id=$id";sql2 = "SELECT * FROM news WHERE title=$title";
$id=1; $title='北京';
mysqli->query($sql1); mysqli->query($sql2); ?>
結果第1条が正しく表示され、第2条が間違っています
理由は、titleフィールドタイプが文字列であるため、変数は引用符で囲まれる、すなわち$sql 2=「SELECT*FROM news WHERE title='$title'」である.
これにより、phpにおける単一二重引用符の使用例は以下の通りである.
$title='北京';echo '$title';//$title
$sql = "title='$title'"; echo $sql;//title='北京'【title='$title'】
$sql2 = 'title=$title'; echo $sql2;//title=$title
$sql3 = 'title="$title"'; echo $sql3;//title="$title"
$sql4 = "title='". '$title' . "'"; echo $sql4;//title='$title' ?>