0

私はソーシャル ネットワークを作成しており、ユーザーに自分のプロフィール写真を mysql データベースにアップロードしてもらいたいと考えており、何日も試行していますが、常に次のエラーが発生します。

「警告: mysql_query() は、パラメーター 1 が文字列であると想定しています。リソースは 25 行目の /home/gowemtoc/public_html/uploadpic.php で指定されています」および「「フィールド リスト」の列「配列」が不明です」何が問題なのか教えてください。何日も試してみましたが、何が悪いのかわかりません:/ここに私のコードがあります

<?php
session_start();
if(isset($_SESSION['myusername'])){
$showusername=$_SESSION['myusername'];}
$showcap = strtolower($showusername);
$mysql_host ="localhost";
$mysql_database="database";
$mysql_user="gowemto_me";
$mysql_password="password";
$usercheck=$_GET['user'];
$link=mysql_connect("$mysql_host","$mysql_user","$mysql_password","mysql_database");
mysql_connect("$mysql_host","$mysql_user","$mysql_password")or die("cannot connect");
mysql_select_db("$mysql_database")or die("cannot select DB");
$result = mysql_query("SELECT * FROM Registered WHERE myusername = '$usercheck'");
if($result === FALSE) {
die(mysql_error());
}
$image = $_FILES['myprofilepicture'];

print_r ($image);

$query=mysql_query("UPDATE Registered set myprofilepicture=$image where    myusername='$showusername'");


if (!$result = mysql_query($link, $query)){die('Error occured' .mysql_error($link));}

$id = (int) mysqli_insert_id($link);
exit;

?>
4

2 に答える 2

0

あなたはこれを持っているはずではありませんか:

mysql_query("SELECT * FROM Registered WHERE myusername = '{$usercheck}'")
// missing curly brackets

それ以外の

mysql_query("SELECT * FROM Registered WHERE myusername = '$usercheck'")?

他のmysql_query()フォーマットについても同様です。

于 2013-07-25T01:12:29.510 に答える
0

ここにエラーのリストがあります。

 $image = $_FILES['myprofilepicture'];

これは、配列を $image 変数に割り当てるだけです。期待どおりのファイル名が得られません。['tmp_name']少なくとも必要ですが、最初に別の場所に移動する必要があります。http://www.php.net/manual/en/features.file-upload.post-method.phpを参照してください。

クエリには、補間された文字列を囲む引用符もありません。

 $query=mysql_query("UPDATE Registered set myprofilepicture=$image where    myusername='$showusername'");

そのようなあなたのクエリはset myprofilepicture=Arrayせいぜいになります。しかし、あなたが必要myprofilepicture='/tmp/Whatever'です。

最後に、mysql_query() を 2 回呼び出しています。$query 変数にのみ SQL コマンドを割り当てます。

 $query = "UPDATE Registered ...";

mysql_queryまたは、 の 2 番目を削除しifます。

そして、以前に mysql_ 関数を使用していた場合、 を混在させることはできません。mysqli_insert_id

この古いデータベース インターフェイスmysql_real_escape_string()を使い続けたい場合は、補間されたすべての文字列に適用することを忘れないでください。

于 2013-07-25T01:14:44.660 に答える