2016-10-21 6 views
2

SQL構文の何が間違っていますか?

WordPressデータベースエラー:[SQL構文に誤りがあります。私が使用しているコード]の行1で

SELECT table_name, table_code FROM 'wp_spreadsheets' WHERE id = 6 

をWHERE ID = 6' の近くに「」wp_spreadsheets'を使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください続くようです。

<?php 

// Variables 
$mysqltable_name = 'wp_spreadsheets'; 
$table_id = 6; 

// Query 
$query = $wpdb->prepare('SELECT table_name, table_code FROM %s WHERE id = %d', $mysqltable_name, $table_id); 
$results = $wpdb->get_results($query, ARRAY_A); 

// Results 
if(!empty($results)) { 
    print_r($results); 
} else { 
    $wpdb->print_error(); 
} 

?> 
+2

表名と列名はバインドできません。変数のみをバインドできません。 – aynber

答えて

1

%sあなたが$mysqltable_nameテキストを渡す場所をあなたのPHPの端にいいですvarchar入力を、使用することを意味し、それは、Aであるため、MySQLのレベルで実行されるクエリは$mysqltable_nameの周りにアポストロフィが含まれていますvarchar。あなたのPHPコードでそれを避けるには、文字列の連結またはハードコードされたテーブル名を使用する必要があります。 tableの名前が動的である場合は、それが有害なコードを含まないことを確認する必要があります。

関連する問題