2017-08-05 2 views
-3

接続:(MySQLiをする)MySQLサーバのためのPHPでテーブルを作成する

<?php 
$db_name = "xxx"; 
$mysql_username = "xxx"; 
$mysql_password = "xxx"; 
$server_name = "xxx"; 
// Create connection 
$conn = new mysqli("xxx","xxx","xxx","xxx"); 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
echo "Connected successfully"; 
?> 

完全なコード(これは登録のためのコードである)[編集](私が近づくのですか?):

<?php 
    require "conn.php"; 
    echo "debug 1"; 
    $stmt = $conn->prepare("SELECT * FROM UserData WHERE username = ?"); 
    $stmt->bind_param('s',$username); 
    $username = $_POST["username"]; 
    $stmt->execute(); 
    $stmt->store_result(); 

    echo "debug 2"; 
    if ($stmt->num_rows == 0){ // username not taken 
     echo "debug 3"; 
     $stmt2 = $conn->prepare("INSERT INTO UserData (username, password) VALUES (?, ?)"); 
     $password =($_POST["password"]); 
     $username =($_POST["username"]); 
     $stmt2->bind_param('ss', $username, $password); 
     $stmt2->execute(); 
     $MyServer = ($_POST["username"]); 
    $stmt3 = $conn->prepare('CREATE TABLE ? (
     id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
     username VARCHAR(30) NOT NULL 
     )'); 
    $stmt3->bind_param('s',$username); 
    $username = $_POST["username"]; 
    $stmt->execute(); 
    ///mysqli_query(connection object,query) 
     if ($stmt2->affected_rows == 1){ 
     echo 'Insert was successful.'; 

     }else{ echo 'Insert failed.'; 
     var_dump($stmt2); 
     } 
    }else{ echo 'That username exists already.';} 
    ?> 

このコードを使用して、投稿されたユーザー名の表を作成しました。これがうまくいかないのは、うまくいかないためです。

+1

これまでのところ、SQL文を含む文字列があります。あなたはそれで何をしていますか?クエリを実行するために使用するコードとエラーが必要です。 – Nick

+0

上記のクエリを実行するために使用しているコードを入れてください –

+0

MySQLiでクエリを実行するにはどうすればいいですか? (私は初心者ですので具体的にしてください) –

答えて

0
$MyServer = ($_POST["username"]); 
$sql = "CREATE TABLE '$MyServer' (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    username VARCHAR(30) NOT NULL 
    )"; 
$result = mysqli_query($con,$sql); 

mysqli_query(接続オブジェクト、クエリ)

あなたは、上記のように、あなたのクエリを実行することができます。

+0

これは動作しません。 –

0

私の個人的な好みです。

$myServer = mysqli_real_escape_string($con, $_POST["username"]); 
$sql = "CREATE TABLE '$MyServer' (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    username VARCHAR(30) NOT NULL 
    )"; 
$result = mysqli_query($conn, $sql); 

PDOもまた代替品です。 vaiableウルSQLなどの線より下の

$host = 'localhost'; 
$db = '<INSERT DATABASE NAME HERE>'; 
$user = '<INSERT USERNAME HERE>'; 
$pass = '<INSERT PASSWORD HERE>'; 
$charset = 'utf8'; 

$dsn = "mysql:host=$host;dbname=$db;charset=$charset"; 

$pdo = new PDO($dsn, $user, $pass, $opt); 

$stmt = $pdo->prepare('CREATE TABLE ? (
     id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
     username VARCHAR(30) NOT NULL 
     )'); 
$stmt->execute([$myServer]); 
$success = $stmt->fetch(); 
0

使用

$sql = " create table if not exists {$MyServer} (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    username VARCHAR(30) NOT NULL 
    )"; 

とテーブル名の単一引用符( ')でのmysqlで

それは `だ存在しません。

関連する問題