-1
$table_name=strval($new_username).'_msgs';

@ $db=new mysqli('localhost','root','','newdatabase');

$query2="CREATE TABLE ? ( 'msg_id' int(20) auto_increment primary key,'sender'               varchar(50), 'content' varchar(2000), 'date' varchar(50) )";

          $stmt2=$db->prepare($query2);
          $stmt2->bind_param("s",$table_name);
          $stmt2->execute();

このエラーメッセージが表示されます「非オブジェクトでのメンバー関数 bind_param() の呼び出し」

4

3 に答える 3

4

たとえば、「to」というフィールドを追加するだけで、ユーザーごとに新しいテーブルを作成する代わりに、そこにレシーバー名を書き込むことができます。これは悪い習慣です。

新しいフィールドを次のようにします

`receiver` varchar(50)

次のようなクエリで彼のメッセージを取得できます。

SELECT * FROM `msgs` WHERE `receiver`='random_username'
于 2013-05-28T06:19:56.733 に答える
0

これを見て

<?php
$mysqli = new mysqli(DB_SERVER,DB_USER,DB_PASS,DB_NAME);

if($mysqli->connect_errno) echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
echo $mysqli->host_info . "\n";

$query = "CREATE TABLE hwt_tools(
    id mediumint(8) NOT NULL AUTO_INCREMENT,
    user_id mediumint(8),
    category_id mediumint(8),
    target_url varchar(255),
    favicon_url varchar(255),
    desc_text text,
    UNIQUE KEY id (id)
);";

//Use this to safely create a table while testing
if(!$mysqli->query($query)) echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;

//Use this to drop existing table and start a new
//if(!$mysqli->query("DROP TABLE IF EXISTS hwt_tools") || !$mysqli->query($query)) echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;

?>
于 2013-05-28T06:29:46.807 に答える