3

データベースに挿入しようと何度も試みました。値には一重引用符が含まれます-魔法の引用符はオフになり、addslashes()とmysql_real_escape_string()は両方とも文字をエスケープしますが、スクリプトはデータベースに追加せずに終了します。私も手動で脱出しましたが、これも失敗しました。ただし、アポストロフィを削除しても、スクリプトは停止します。

エラーは次のとおりです。スタッフを挿入できませんでした:SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、「11、ヘーゼル、ブロンド、1日の仕事を逃したことはない、バークレーを卒業、サーブ」の2行目で使用する正しい構文を確認してください。

<?php
include('header.php');

$amount = 1;
$staffnum = '0101';
$height = array("5'11", "5'4", "6'2","5'5", "6'4");
$eye = array("Blue","Green","Hazel","Brown");
$hair = array("Brown", "Black", "Blonde", "Red");
$about1 = "Has never missed a day of work";
$about2 = "Graduated from Berkley";
$positions =  array('Server, Bartender', 'Bartender, Host', 'Sever, Host, Bartender', 'Cocktail Server, Bartender, Server'); 
$img = "none";
// arrays
$times = 1;


while($times <= 50) {
$staffnum ++; 
$heighta = mysql_real_escape_string($height[array_rand($height)]);
$eyea =  mysql_real_escape_string($eye[array_rand($eye)]);
$haira =  mysql_real_escape_string($hair[array_rand($hair)]);
$positionsa =   mysql_real_escape_string($positions[array_rand($positions)]);
$about1 =  mysql_real_escape_string($about1);
$about2 =   mysql_real_escape_string($about2);
$img =  mysql_real_escape_string($img);
$staffnum =  mysql_real_escape_string($staffnum);

$insert_staff = "INSERT INTO staff (staffnum, img_link, height, eye, hair, abt1, abt2, titles)
VALUES ($staffnum, $img, $heighta, $eyea, $haira, $about1, $about2, $positionsa)";

$insert_query = mysql_query($insert_staff);

if($insert_query) {
    ?>

<center>
  Member # <?php echo $staffnum; ?> has been added to the database.<br />
  <?php
} else {

  die('Could not insert staff: ' . mysql_error());

}

$times ++;
}

include('footer.php');
?>
  <a href="staff_insert.php?page=1">Return To Staff Insert</a>
</center>
4

2 に答える 2

2

挿入する文字列変数を引用符で囲む必要があります。

$insert_staff = "INSERT INTO staff (staffnum, img_link, height, eye, hair, abt1, abt2, titles)
VALUES ('$staffnum', '$img', '$heighta', '$eyea', '$haira', '$about1', '$about2', '$positionsa')";
于 2012-11-21T21:44:21.577 に答える
-1

基本的なmysql_queryを使用して非常に多くの変数を送信する場合は、少し複雑になります。PDOまたはmysqliを試す必要がありますが、コードを使用する必要がある場合は、次のようになります。

$insert_staff = "INSERT INTO staff (staffnum, img_link, height, eye, hair, abt1, abt2, titles)
VALUES ('".$staffnum."', '".$img."', '".$heighta."', '".$eyea."', '".$haira."', '".$about1."', '".$about2."', '".$positionsa."')";
于 2012-11-21T21:47:29.923 に答える