6

phpからmysqlクエリを実行したい。

$sql = insert into q_links values ( 'garment.png', 'imgs\ques\p1\garment.png' );

URLをそのまま保存することはできませんでしたが、次のように保存されていますimgsquesp1garment.png。しかし、私は次のようなURLを保存したいと思いますimgs\ques\p1\garment.png。だから私はこれを試しました:

$sql = mysql_real_escape_string($sql);

しかし、このように私のように$sql見えます:

insert into q_links values ( \'garment.png\', \'imgs\\ques\\p1\\garment.png\' );

これはmysqlデータベースでは機能しません。

後で使用するために、このURLをデータベースに挿入する必要があります。URLはimgs\ques\p1\garment.pngです。どうすればこれを達成できますか?

更新: そして、私は私のために働いた最初のコメントで試しました。

したがって、解決策は次のとおりです。

$sql = "insert into q_links values ( 'garment.png', '".mysql_real_escape_string( 'imgs\ques\p1\garment.png' )."' );";
4

7 に答える 7

4
$url = "imgs\ques\p1\garment.png";

$url = mysql_real_escape_string($url);
$sql = "INSERT INTO q_links VALUES ('garment.png', '$url')";

補足として、mysql_ *関数は非推奨であり、mysqli_*またはPDOを使用してPreparedステートメントに移動する必要があります。

PDOの例:

$pdo = new PDO("mysql:host=localhost;port=3306;dbname=mydb", "user", "password");
$stmt = $pdo->prepare("INSERT INTO q_links VALUES (?, ?)");
$stmt->execute(array("garment.png", "imgs\ques\p1\garment.png"));
$stmt->closeCursor();
于 2013-01-31T13:08:33.667 に答える
2

imgフィールドにのみエスケープを追加します。

$sql = "insert into q_links values ( 'garment.png', '".mysql_real_escape_string( 'imgs\ques\p1\garment.png' )."' );"
于 2013-01-31T13:52:25.277 に答える
2

一重引用符をエスケープしないでください。\

$var = "insert into q_links values ( 'garment.png', 'imgs\\ques\\p1\\garment.png');"
于 2013-01-31T13:08:20.277 に答える
2

スラッシュを付けて保存してみませんか?

$sql = insert into q_links values ( 'garment.png', 'imgs/ques/p1/garment.png' );
于 2013-01-31T13:08:27.407 に答える
1
I can be like this:
$img=addslashes("imgs\ques\p1\garment.png");
$sql=insert into q_links values('garment.png',$img);
and while retriving you can use stripslashe();
于 2013-01-31T13:12:34.863 に答える
1

このコードを使用して、データベースに画像のURLを入力できます

$url =mysql_real_escape_string('imgs\ques\p1\garment.png');
$sql = "insert into q_links values ( 'garment.png', '".$url."' );

クエリを実行する場合:q_linksの値に挿入します('garment.png'、'imgs \ ques \ p1 \ garment.png');

データベースに正常に挿入されます

于 2013-01-31T13:31:05.680 に答える
0

PDOを使用します。mysql_とにかく非推奨です。

    $params = array('value_one','value_two')
    $dbh = new PDO('credentials go here');
    $sql = 'insert into q_links values ( ?, ? );';
    $stmt = $dbh->prepare($sql);
    $stmt->execute($params);

PDOを使用してステートメントを準備し、必要な正確な変数を使用してそれを実行します。それはあなたのためにそれをすべて逃れるでしょう。

于 2013-01-31T13:09:10.603 に答える