私はまったくPHPの初心者です。PHPとMySQLのデータベースに変数を挿入しようとしています。 これは私のコードです:php + mysqlのデータベースに変数を挿入する
$link = mysql_connect('localhost','','','onlynews') or die('Cannot connect to the DB');
mysql_select_db('TEST',$link) or die('Cannot select the DB');
$strSQL = "INSERT INTO news(id, title,photo,url,source, at) VALUES('$x','$title','$url','$imgurl ','$source','$at')";
mysql_query($strSQL) or die(mysql_error());
問題は、それはやっていないです。何も!エントリはまったくありません。データベースに変更はありません。
- これはどのように修正できますか?
- 変数がユーザーからではなくAPIからのものであっても、SQLインジェクションを防ぐコードを記述する必要がありますか?
$ sqlを文字列に設定するだけです。 mysqliを使って実際にクエリを実行する必要があります。また、SQLインジェクションのハッキングから安全なように、クエリの準備やパラメータ化されたクエリの使用を検討する必要があります。値を直接クエリ文字列に連結するのは非常に危険です。 – JimL
投稿を編集しました。更新情報をお読みください。 –
ローカル開発環境でエラー報告が有効になっていますか?どのPHPバージョンを使用していますか?すべてのmysql_ *関数はPHP 7で削除されているので、 – JimL