Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中的Sql结果对象到字符串_Php_Sql - Fatal编程技术网

php中的Sql结果对象到字符串

php中的Sql结果对象到字符串,php,sql,Php,Sql,我正在创建一个论坛,用户可以通过给出问题和选项来创建投票。然后我使用Ajax和PHP将它们发送到数据库,并创建一个名为PollTable0的表。随着新表的增加,这个数字会增加,例如“PollTable1”、“PollTable2”等等。我通过计算数据库中表的数量得到这些数字。我的代码如下所示: <?php if (isset($_POST['NewPoll'])) { $PollArray = $_POST['NewPoll']; } $con = mysqli_connect("

我正在创建一个论坛,用户可以通过给出问题和选项来创建投票。然后我使用Ajax和PHP将它们发送到数据库,并创建一个名为PollTable0的表。随着新表的增加,这个数字会增加,例如“PollTable1”、“PollTable2”等等。我通过计算数据库中表的数量得到这些数字。我的代码如下所示:

<?php
if (isset($_POST['NewPoll'])) {
    $PollArray = $_POST['NewPoll'];
}
$con = mysqli_connect("localhost", "root", "123", "polldatabase") or die("DIE");

$getnumber = "SELECT COUNT(*) FROM information_schema.TABLES
            WHERE TABLE_SCHEMA='polldatabase'";
$number = mysqli_query($con, $getnumber);

$sql = "CREATE TABLE PollTable" . $number . " (" . $PollArray[0] . "VarChar(255))";
mysqli_query($con, $sql);

for ($i = 1; $i < count($PollArray); $i++) {
$target =   "ALTER TABLE PollTable" . $number . " ADD " . $PollArray[i] . " VARCHAR(255)";
mysqli_query($con, $target);
}
echo "Thank you for submitting your poll";
mysqli_close($con);
?>
如果我是对的,是否有一种将结果对象转换为字符串的方法。我尝试过strval()和其他一些方法,但都不起作用。
如果我错了,你认为我犯这个错误的原因是什么?提前感谢。

您应该在第行之后添加:

$number = mysqli_query($con, $getnumber);
以下几行:

$number = mysqli_fetch_row($number);
$number = $number[0];
mysqli_query仅查询数据库,但如果要获取结果,则需要使用以下函数之一:
mysli_fetch_row
mysqli_fetch_array
mysqli_fetch_assoc

您需要更改

$getnumber = "SELECT COUNT(*) FROM information_schema.TABLES
            WHERE TABLE_SCHEMA='polldatabase'";
$number = mysqli_query($con, $getnumber);

问题就在这里

$number = mysqli_query($con, $getnumber);
Mysqli::查询将返回

失败时返回FALSE。要成功选择、显示、描述或 解释查询mysqli_query()将返回一个mysqli_结果对象。对于 其他成功的查询mysqli_query()将返回TRUE

您在下一行中使用了
$number
,因此发出了错误

您需要先获取结果,然后再使用它

$getnumber = "SELECT COUNT(*) as total FROM information_schema.TABLES
            WHERE TABLE_SCHEMA='polldatabase'";
$result = mysqli_query($con, $getnumber);
$data = mysqli_fetch_assoc($result);
$number = $data['total'];

但您还需要获取结果。是吗?@MarcinNabiałek你什么意思?它不再犯那个错误了,但显然我仍然有错误。。。非常感谢。though@let_the_coding_begin看看我的answerUndefined属性:mysqli_result::$number这是我添加的行:$number=$result->number;
$number = mysqli_query($con, $getnumber);
$getnumber = "SELECT COUNT(*) as total FROM information_schema.TABLES
            WHERE TABLE_SCHEMA='polldatabase'";
$result = mysqli_query($con, $getnumber);
$data = mysqli_fetch_assoc($result);
$number = $data['total'];